@ape.swap/bonds-sdk 6.1.0-test.0 → 6.1.0-test.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/uikit-sdk/Tag/ListTag.js +1 -1
- package/dist/components/uikit-sdk/Tag/ListTag.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +22 -2
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/BondRow.d.ts +1 -0
- package/dist/views/Bonds/components/BondRows/BondRow.js +3 -3
- package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
- package/dist/views/BuyBond/ParticipationSuccessful.js +4 -10
- package/dist/views/BuyBond/ParticipationSuccessful.js.map +1 -1
- package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js +3 -3
- package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js.map +1 -1
- package/dist/views/YourBondsModalYield/YourBondsModalYield.js +1 -1
- package/dist/views/YourBondsModalYield/YourBondsModalYield.js.map +1 -1
- package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js +1 -1
- package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map +1 -1
- package/package.json +1 -1
|
@@ -35,7 +35,7 @@ const ListTag = ({ text = '', marketingCampaign }) => {
|
|
|
35
35
|
'&:hover': {
|
|
36
36
|
background: 'rgb(20 18 29 / 0.36)',
|
|
37
37
|
},
|
|
38
|
-
}, children: [text === 'Selling Fast' && jsx(Svg, { icon: 'SellingFast', width:
|
|
38
|
+
}, children: [text === 'Selling Fast' && jsx(Svg, { icon: 'SellingFast', width: 12 }), text === 'Short Supply' && jsx(Svg, { icon: icons.SHORT_SUPPLY, width: 20 }), text === 'New Offer' && jsx(Svg, { icon: 'NewOffer', width: 20 }), text === 'Whale Activity' && jsx(Svg, { icon: 'WhaleActivity', width: 20 }), text.toUpperCase()] }));
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
export { ListTag as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListTag.js","sources":["../../../../src/components/uikit-sdk/Tag/ListTag.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../Flex'\nimport { MCTagStyles } from '../../../utils/campaignStyles'\nimport { MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport Svg from '../Svg'\nimport { icons } from '../Svg/types'\n\nconst bg = {\n ['Selling Fast']: '#14121D',\n ['Short Supply']: '#14121D',\n ['New Offer']: '#14121D',\n ['Whale Activity']: '#14121D',\n}\n\nconst colorMap = {\n ['Selling Fast']: '#EA901B',\n ['Short Supply']: '#FCA384',\n ['New Offer']: '#AA80F9',\n ['Whale Activity']: '#8EE3FF',\n}\n\nconst ListTag = ({ text = '', marketingCampaign }: { text?: string; marketingCampaign?: MarketingCampaign }) => {\n return (\n <Flex\n className=\"list-tag\"\n sx={{\n //@ts-ignore\n background: bg[text] || '#3C6AB530',\n //@ts-ignore\n color: colorMap[text] || '#3b78d3',\n fontSize: '10px',\n fontWeight: 600,\n alignItems: 'center',\n lineHeight: '15px',\n p: '2px 6px',\n borderRadius: '5px',\n width: 'fit-content',\n zIndex: 2,\n gap: '5px',\n ...MCTagStyles[marketingCampaign!],\n '&:hover': {\n background: 'rgb(20 18 29 / 0.36)',\n },\n }}\n >\n {text === 'Selling Fast' && <Svg icon={'SellingFast'} width={
|
|
1
|
+
{"version":3,"file":"ListTag.js","sources":["../../../../src/components/uikit-sdk/Tag/ListTag.tsx"],"sourcesContent":["import React from 'react'\nimport Flex from '../Flex'\nimport { MCTagStyles } from '../../../utils/campaignStyles'\nimport { MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport Svg from '../Svg'\nimport { icons } from '../Svg/types'\n\nconst bg = {\n ['Selling Fast']: '#14121D',\n ['Short Supply']: '#14121D',\n ['New Offer']: '#14121D',\n ['Whale Activity']: '#14121D',\n}\n\nconst colorMap = {\n ['Selling Fast']: '#EA901B',\n ['Short Supply']: '#FCA384',\n ['New Offer']: '#AA80F9',\n ['Whale Activity']: '#8EE3FF',\n}\n\nconst ListTag = ({ text = '', marketingCampaign }: { text?: string; marketingCampaign?: MarketingCampaign }) => {\n return (\n <Flex\n className=\"list-tag\"\n sx={{\n //@ts-ignore\n background: bg[text] || '#3C6AB530',\n //@ts-ignore\n color: colorMap[text] || '#3b78d3',\n fontSize: '10px',\n fontWeight: 600,\n alignItems: 'center',\n lineHeight: '15px',\n p: '2px 6px',\n borderRadius: '5px',\n width: 'fit-content',\n zIndex: 2,\n gap: '5px',\n ...MCTagStyles[marketingCampaign!],\n '&:hover': {\n background: 'rgb(20 18 29 / 0.36)',\n },\n }}\n >\n {text === 'Selling Fast' && <Svg icon={'SellingFast'} width={12} />}\n {text === 'Short Supply' && <Svg icon={icons.SHORT_SUPPLY} width={20} />}\n {text === 'New Offer' && <Svg icon={'NewOffer'} width={20} />}\n {text === 'Whale Activity' && <Svg icon={'WhaleActivity'} width={20} />}\n {text.toUpperCase()}\n </Flex>\n )\n}\n\nexport default ListTag\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAOA,MAAM,EAAE,GAAG;IACT,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,WAAW,GAAG,SAAS;IACxB,CAAC,gBAAgB,GAAG,SAAS;CAC9B;AAED,MAAM,QAAQ,GAAG;IACf,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,cAAc,GAAG,SAAS;IAC3B,CAAC,WAAW,GAAG,SAAS;IACxB,CAAC,gBAAgB,GAAG,SAAS;CAC9B;AAED,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,iBAAiB,EAA4D,KAAI;IAC7G,QACEA,KAAC,IAAI,EAAA,EACH,SAAS,EAAC,UAAU,EACpB,EAAE,EAAE;;AAEF,YAAA,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW;;AAEnC,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS;AAClC,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,CAAC,EAAE,SAAS;AACZ,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,GAAG,EAAE,KAAK;YACV,GAAG,WAAW,CAAC,iBAAkB,CAAC;AAClC,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,sBAAsB;AACnC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,CAEA,IAAI,KAAK,cAAc,IAAIC,IAAC,GAAG,EAAA,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAI,EAClE,IAAI,KAAK,cAAc,IAAIA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,EAAA,CAAI,EACvE,IAAI,KAAK,WAAW,IAAIA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAA,CAAI,EAC5D,IAAI,KAAK,gBAAgB,IAAIA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAA,CAAI,EACtE,IAAI,CAAC,WAAW,EAAE,CAAA,EAAA,CACd;AAEX;;;;"}
|
|
@@ -47,13 +47,33 @@ const ActiveBondRows = ({ chain, bonds, hideTitles, showHotBonds }) => {
|
|
|
47
47
|
const now = new Date().getTime();
|
|
48
48
|
const saleFinishTime = (bond?.finishTime ?? 0) * 1000;
|
|
49
49
|
const saleHasFinished = now > saleFinishTime || bond.finalized;
|
|
50
|
-
return (jsx(BondRow, { bondAddress: bond.contractAddress?.[bond.chainId], bondChain: bond.chainId, marketingCampaign: bond.marketingCampaign, payoutToken: bond.underlyingEarnToken || bond.earnToken, billType: bond.billType, tag: bond.tags?.[0], bonus: bond.yieldBond
|
|
50
|
+
return (jsx(BondRow, { bondAddress: bond.contractAddress?.[bond.chainId], bondChain: bond.chainId, marketingCampaign: bond.marketingCampaign, payoutToken: bond.underlyingEarnToken || bond.earnToken, billType: bond.billType, tag: bond.tags?.[0], bonus: bond.yieldBond
|
|
51
|
+
? `${bond.yieldData?.apr.toFixed()}% APR`
|
|
52
|
+
: saleHasFinished
|
|
53
|
+
? undefined
|
|
54
|
+
: `${bonus}%`, airdropTooltip: bond.airdropTooltip, percentageAvailable: percentageAvailable, remainingTokensString: saleHasFinished
|
|
51
55
|
? `0 ${earnToken} ($0) `
|
|
52
56
|
: `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`, vestingTermString: saleHasFinished
|
|
53
57
|
? '-'
|
|
54
58
|
: initialRelease === 100
|
|
55
59
|
? `0 D`
|
|
56
|
-
: `${getTimePeriods(bond.vestingTerm).months} Mo`,
|
|
60
|
+
: `${getTimePeriods(bond.vestingTerm).months} Mo`, vestingTermsComponent: bond.yieldBond && (jsxs(Flex, { className: "list-tag", sx: {
|
|
61
|
+
background: '#3C6AB530',
|
|
62
|
+
color: '#3b78d3',
|
|
63
|
+
fontSize: '10px',
|
|
64
|
+
fontWeight: 600,
|
|
65
|
+
alignItems: 'center',
|
|
66
|
+
lineHeight: '15px',
|
|
67
|
+
p: '2px 6px',
|
|
68
|
+
borderRadius: '5px',
|
|
69
|
+
width: 'fit-content',
|
|
70
|
+
zIndex: 2,
|
|
71
|
+
flexDirection: 'column',
|
|
72
|
+
'&:hover': {
|
|
73
|
+
background: 'rgb(20 18 29 / 0.36)',
|
|
74
|
+
},
|
|
75
|
+
}, children: [jsx(Flex, { children: "POOL DURATION" }), jsxs(Flex, { sx: { color: 'text' }, children: [getTimePeriods((bond?.yieldData?.rewardDistributionEnd ?? 0) -
|
|
76
|
+
parseInt(bond.startVestingTimestamp ?? '0'), true).days, ' ', "Days"] })] })), projectURL: bond.projectLink, twitterURL: bond.twitter, bondSoldOut: saleHasFinished, shortDescription: bond.shortDescription }, `${bond.contractAddress}-${bond.chainId}-${index}`));
|
|
57
77
|
}
|
|
58
78
|
else {
|
|
59
79
|
// POST TGE BONDS AKA NORMAL BONDS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle\n chain={chain}\n pt={'5px'}\n hideTitles={(bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles}\n isOpen={isOpen}\n />\n </Flex>\n {isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[\n ChainId.SOL,\n ChainId.MONAD,\n // ChainId.APTOS,\n // ChainId.SUI\n ].includes(chain) &&\n !hideTitles && <ChainBanner chainId={chain} />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.underlyingEarnToken || bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={bond.yieldBond ? `${bond.yieldData?.apr}% APR` : saleHasFinished ? undefined : `${bonus}%`}\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.highlightTag || bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActiveBondRows.js","sources":["../../../../../src/views/Bonds/components/BondRows/ActiveBondRows.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport ChainTitle from './ChainTitle'\nimport BondRow from './BondRow'\nimport { Flex } from 'theme-ui'\nimport { BondsData } from '../../../../types/bonds'\nimport { BaseBondConfig, ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport SwiperProvider from '../../../../contexts/SwiperProvider'\nimport HotBondCards from '../HotBondCards'\nimport ChainBanner from '../ChainBanner/ChainBanner'\nimport {\n getRemainingTokensString,\n getVestingTermsString,\n getVestingTermsTooltipString,\n remainingPercentage,\n} from '../../../../utils/displayHelpers'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport BigNumber from 'bignumber.js'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { MCTagStyles } from '../../../../utils/campaignStyles'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { icons } from '../../../../components/uikit-sdk/Svg/types'\nimport { formatUTCDate } from '../../../../utils/dates/formatDate'\n\n// Record<string, (BondsData | BaseBondConfig)[]>\n\nexport interface ActiveBondRowsProps {\n chain: number\n bonds: (BondsData | BaseBondConfig)[]\n hideTitles: boolean\n showHotBonds: boolean\n}\n\nconst ActiveBondRows: React.FC<ActiveBondRowsProps> = ({ chain, bonds, hideTitles, showHotBonds }) => {\n const { namingPreference } = useSDKConfig()\n const [isOpen, setIsOpen] = useState<boolean>(true)\n const key = chain\n\n return (\n <Flex className=\"bondrowswithtitle\" key={key}>\n <AnimatePresence initial={false}>\n <Flex onClick={() => setIsOpen(!isOpen)} sx={{ cursor: 'pointer' }}>\n <ChainTitle\n chain={chain}\n pt={'5px'}\n hideTitles={(bonds.length <= 0 && chain !== ChainId.SOL && chain !== ChainId.MONAD) || hideTitles}\n isOpen={isOpen}\n />\n </Flex>\n {isOpen && (bonds.length > 0 || chain === ChainId.SOL || chain === ChainId.MONAD) && (\n <motion.div\n initial={{ height: 0, overflow: 'hidden' }}\n animate={{ height: 'fit-content', overflow: 'hidden', transitionEnd: { overflow: 'visible' } }}\n exit={{ height: 0, overflow: 'hidden' }}\n sx={{\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n marginTop: '0px',\n }}\n key={key}\n className=\"bonds-card-container\"\n >\n {[\n ChainId.SOL,\n ChainId.MONAD,\n // ChainId.APTOS,\n // ChainId.SUI\n ].includes(chain) &&\n !hideTitles && <ChainBanner chainId={chain} />}\n {bonds?.map((bondFromMap, index) => {\n // PRE TGE ROWS\n\n if (bondFromMap.billType === 'fcfs') {\n const bond = bondFromMap as BondsData\n const totalPrincipalBilled =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalPrincipalBilled ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n const raiseGoal =\n Math.round(\n getBalanceNumber(\n new BigNumber(bond?.totalRaise ?? '0'),\n bond?.lpToken?.decimals?.[bond?.chainId] as number,\n ),\n ) / (bond.initPrice ?? 0)\n\n const tokensRemaining = raiseGoal - totalPrincipalBilled\n const tokensRemainingUSD = tokensRemaining * (bond?.initPrice ?? 0)\n const percentageAvailable = 100 - Math.floor((totalPrincipalBilled * 100) / raiseGoal)\n const earnToken = bond?.earnToken?.symbol\n\n const baseBonus = bond?.trueBondPrices?.[0]?.bonus ?? 0\n const airdropBonus = bond?.airdropBonus ?? 0\n const bonus = baseBonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n\n const now = new Date().getTime()\n const saleFinishTime = (bond?.finishTime ?? 0) * 1000\n const saleHasFinished = now > saleFinishTime || bond.finalized\n\n return (\n <BondRow\n key={`${bond.contractAddress}-${bond.chainId}-${index}`}\n bondAddress={bond.contractAddress?.[bond.chainId] as string}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.underlyingEarnToken || bond.earnToken}\n billType={bond.billType}\n tag={bond.tags?.[0]}\n bonus={\n bond.yieldBond\n ? `${bond.yieldData?.apr.toFixed()}% APR`\n : saleHasFinished\n ? undefined\n : `${bonus}%`\n }\n airdropTooltip={bond.airdropTooltip}\n percentageAvailable={percentageAvailable}\n remainingTokensString={\n saleHasFinished\n ? `0 ${earnToken} ($0) `\n : `${formatNumberSI(tokensRemaining, 0)} ${earnToken} ($${formatNumberSI(tokensRemainingUSD, 2)})`\n }\n vestingTermString={\n saleHasFinished\n ? '-'\n : initialRelease === 100\n ? `0 D`\n : `${getTimePeriods(bond.vestingTerm).months} Mo`\n }\n vestingTermsComponent={\n bond.yieldBond && (\n <Flex\n className=\"list-tag\"\n sx={{\n background: '#3C6AB530',\n color: '#3b78d3',\n fontSize: '10px',\n fontWeight: 600,\n alignItems: 'center',\n lineHeight: '15px',\n p: '2px 6px',\n borderRadius: '5px',\n width: 'fit-content',\n zIndex: 2,\n flexDirection: 'column',\n '&:hover': {\n background: 'rgb(20 18 29 / 0.36)',\n },\n }}\n >\n <Flex>POOL DURATION</Flex>\n <Flex sx={{ color: 'text' }}>\n {\n getTimePeriods(\n (bond?.yieldData?.rewardDistributionEnd ?? 0) -\n parseInt(bond.startVestingTimestamp ?? '0'),\n true,\n ).days\n }{' '}\n Days\n </Flex>\n </Flex>\n )\n }\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bondSoldOut={saleHasFinished}\n shortDescription={bond.shortDescription}\n />\n )\n } else {\n // POST TGE BONDS AKA NORMAL BONDS\n\n const bond = bondFromMap as BondsData\n const bondAddress = bond?.contractAddress?.[bond?.chainId] as string\n const remainingTokensString = getRemainingTokensString(bond)\n return (\n <BondRow\n key={`${bondAddress}-${bond.chainId}-${index}`}\n bondAddress={bondAddress}\n bondChain={bond.chainId}\n marketingCampaign={bond.marketingCampaign as MarketingCampaign}\n payoutToken={bond.earnToken}\n billType={bond.billType}\n tag={bond.highlightTag || bond.tags?.[0]}\n trueBondPrices={namingPreference === 'Bonus' ? bond.trueBondPrices : undefined}\n minTier={bond?.minTier}\n vestingTermString={getVestingTermsString(bond)}\n vestingCliffString={getVestingTermsTooltipString(bond)}\n percentageAvailable={remainingPercentage(bond)}\n remainingTokensString={remainingTokensString}\n projectURL={bond.projectLink}\n twitterURL={bond.twitter}\n bonus={\n namingPreference === 'Discount'\n ? `${bond?.trueBondPrices?.[0]?.discountWithFee?.toFixed(2)}%`\n : undefined\n }\n shortDescription={bond.shortDescription}\n cgId={bond.cgId}\n dexscreener={bond?.dexscreener}\n />\n )\n }\n })}\n {showHotBonds && (\n <SwiperProvider>\n <HotBondCards />\n </SwiperProvider>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n}\n\nexport default ActiveBondRows\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'theme-ui/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import ProgressBar from '../../../../components/ProgressBar/ProgressBar.js';
|
|
3
3
|
import ProgressBarWrapper from '../../../../components/ProgressBar/ProgressBarWrapper.js';
|
|
4
4
|
import TokenInfoAndName from '../../../../components/TokenInfoAndName/index.js';
|
|
@@ -15,7 +15,7 @@ import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
|
15
15
|
import TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
16
16
|
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
17
17
|
|
|
18
|
-
const BondRow = ({ bondAddress, bondChain, marketingCampaign, payoutToken, billType, tag, bondSoldOut, trueBondPrices, minTier, bonus, airdropTooltip, vestingTermString, vestingCliffString, percentageAvailable, remainingTokensString, projectURL, twitterURL, shortDescription, soldoutBondsCount, isOpen, cgId, dexscreener, }) => {
|
|
18
|
+
const BondRow = ({ bondAddress, bondChain, marketingCampaign, payoutToken, billType, tag, bondSoldOut, trueBondPrices, minTier, bonus, airdropTooltip, vestingTermString, vestingTermsComponent, vestingCliffString, percentageAvailable, remainingTokensString, projectURL, twitterURL, shortDescription, soldoutBondsCount, isOpen, cgId, dexscreener, }) => {
|
|
19
19
|
const SDKConfig = useSDKConfig();
|
|
20
20
|
// Modal
|
|
21
21
|
const [openBuyModal] = useModal(jsx(ModalHandler, { bondAddress: bondAddress, bondChain: bondChain }), true, true, `buyBondModal-${bondAddress.toLowerCase()}-${bondChain}`);
|
|
@@ -51,7 +51,7 @@ const BondRow = ({ bondAddress, bondChain, marketingCampaign, payoutToken, billT
|
|
|
51
51
|
'&:hover .list-tag': {
|
|
52
52
|
background: 'rgb(20 18 29 / 0.25)',
|
|
53
53
|
},
|
|
54
|
-
}, children: [jsx("div", { className: "token-info-container", sx: { width: ['45%', '45%', '45%', '30%'], minWidth: ['unset', 'unset', 'unset', '400px'] }, children: jsx(TokenInfoAndName, { tokenSymbol: payoutToken?.symbol, chain: bondChain, tag: tag, marketingCampaign: marketingCampaign }) }), SDKConfig.useCardsView && shortDescription && (jsx("div", { className: "short-description", children: jsx(SafeHTMLComponent, { html: shortDescription }) })), jsxs("div", { className: "bond-info-columns", sx: { width: ['55%', '55%', '55%', '70%'] }, children: [!SDKConfig.useCardsView && jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'], width: '125px' } }), jsx(BonusContainer, { trueBondPrices: trueBondPrices, minTier: minTier, bonus: bonus, airdropTooltip: airdropTooltip, isIREET: payoutToken.symbol.toLowerCase() === 'ireet' }),
|
|
54
|
+
}, children: [jsx("div", { className: "token-info-container", sx: { width: ['45%', '45%', '45%', '30%'], minWidth: ['unset', 'unset', 'unset', '400px'] }, children: jsx(TokenInfoAndName, { tokenSymbol: payoutToken?.symbol, chain: bondChain, tag: tag, marketingCampaign: marketingCampaign }) }), SDKConfig.useCardsView && shortDescription && (jsx("div", { className: "short-description", children: jsx(SafeHTMLComponent, { html: shortDescription }) })), jsxs("div", { className: "bond-info-columns", sx: { width: ['55%', '55%', '55%', '70%'] }, children: [!SDKConfig.useCardsView && jsx(Flex, { sx: { display: ['none', 'none', 'none', 'flex'], width: '125px' } }), jsx(BonusContainer, { trueBondPrices: trueBondPrices, minTier: minTier, bonus: bonus, airdropTooltip: airdropTooltip, isIREET: payoutToken.symbol.toLowerCase() === 'ireet' }), jsx("div", { className: "terms-column", children: vestingTermsComponent ? (vestingTermsComponent) : (jsxs(Fragment, { children: [vestingTermString, vestingCliffString && (jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: vestingCliffString }), width: "180px", placement: "bottomRight", transformTip: "translate(13%, 0%)", children: jsx(Flex, { sx: { opacity: 0.6, ml: '6px' }, children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) }))] })) }), jsx("div", { className: "tokens-remaining-column", children: bondSoldOut ? ('-') : (jsx(ProgressBarWrapper, { title: '', value: jsx(ProgressBar, { value: percentageAvailable }), style: {
|
|
55
55
|
width: '127px',
|
|
56
56
|
height: '25px',
|
|
57
57
|
flexDirection: 'column',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BondRow.js","sources":["../../../../../src/views/Bonds/components/BondRows/BondRow.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport ProgressBar from '../../../../components/ProgressBar/ProgressBar'\nimport ProgressBarWrapper from '../../../../components/ProgressBar/ProgressBarWrapper'\nimport TokenInfoAndName from '../../../../components/TokenInfoAndName'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\nimport { ChainId, LaunchBondTiers, MarketingCampaign, Token } from '@ape.swap/apeswap-lists'\nimport useModal from '../../../../hooks/useModal'\nimport ModalHandler from './ModalHandler'\nimport track from '../../../../utils/track'\nimport BonusContainer from '../BonusComponents/BonusContainer'\nimport ModalHandlerPreTGE from './ModalHandlerPreTGE'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport SafeHTMLComponent from '../../../../components/SafeHTMLComponent'\nimport { MCBondRowStyles } from '../../../../utils/campaignStyles'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\ninterface BondRowProps {\n bondAddress: string\n bondChain: ChainId\n marketingCampaign?: MarketingCampaign\n payoutToken: Token\n billType: string\n tag?: string\n bondSoldOut?: boolean\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n vestingTermString: string\n vestingCliffString?: string\n percentageAvailable: number\n remainingTokensString: string\n projectURL?: string\n twitterURL?: string\n shortDescription?: string\n soldoutBondsCount?: number\n isOpen?: boolean\n cgId?: string\n dexscreener?: string\n}\n\nconst BondRow: React.FC<BondRowProps> = ({\n bondAddress,\n bondChain,\n marketingCampaign,\n payoutToken,\n billType,\n tag,\n bondSoldOut,\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n vestingTermString,\n vestingCliffString,\n percentageAvailable,\n remainingTokensString,\n projectURL,\n twitterURL,\n shortDescription,\n soldoutBondsCount,\n isOpen,\n cgId,\n dexscreener,\n}) => {\n const SDKConfig = useSDKConfig()\n\n // Modal\n const [openBuyModal] = useModal(\n <ModalHandler bondAddress={bondAddress} bondChain={bondChain} />,\n true,\n true,\n `buyBondModal-${bondAddress.toLowerCase()}-${bondChain}`,\n )\n\n const [openPreTGEBondModal] = useModal(\n <ModalHandlerPreTGE bondAddress={bondAddress} bondChain={bondChain} />,\n true,\n true,\n `preTGEBuyBondModal:${bondAddress.toLowerCase()}-${bondChain}}`,\n )\n\n const handleOpenModal = () => {\n if (bondSoldOut) return\n if (billType === 'fcfs') {\n openPreTGEBondModal()\n } else {\n openBuyModal()\n }\n if (typeof window !== 'undefined') {\n const locationPath = window.location.pathname.replace('/', '')\n window.history.pushState({}, '', `${locationPath}?bondAddress=${bondAddress}&bondChain=${bondChain}`)\n }\n track({\n event: 'buyModalOpen',\n chain: bondChain,\n data: {\n cat: 'Row',\n bond: payoutToken.symbol,\n bondChain: bondChain,\n },\n })\n }\n\n return (\n <div\n className=\"bond-row\"\n onClick={handleOpenModal}\n key={`${bondAddress}-${bondChain}`}\n sx={{\n borderRadius: 'normal',\n // Insert special campaign styles here\n ...MCBondRowStyles[marketingCampaign!],\n cursor: !bondSoldOut || (soldoutBondsCount && !isOpen) ? 'pointer' : 'default',\n '&:hover .list-tag': {\n background: 'rgb(20 18 29 / 0.25)',\n },\n }}\n >\n <div\n className=\"token-info-container\"\n sx={{ width: ['45%', '45%', '45%', '30%'], minWidth: ['unset', 'unset', 'unset', '400px'] }}\n >\n <TokenInfoAndName\n tokenSymbol={payoutToken?.symbol}\n chain={bondChain}\n tag={tag}\n marketingCampaign={marketingCampaign}\n />\n </div>\n {SDKConfig.useCardsView && shortDescription && (\n <div className=\"short-description\">\n <SafeHTMLComponent html={shortDescription} />\n </div>\n )}\n <div className=\"bond-info-columns\" sx={{ width: ['55%', '55%', '55%', '70%'] }}>\n {!SDKConfig.useCardsView && <Flex sx={{ display: ['none', 'none', 'none', 'flex'], width: '125px' }} />}\n <BonusContainer\n trueBondPrices={trueBondPrices}\n minTier={minTier}\n bonus={bonus}\n airdropTooltip={airdropTooltip}\n isIREET={payoutToken.symbol.toLowerCase() === 'ireet'}\n />\n <div className=\"terms-column\">\n {vestingTermString}\n {vestingCliffString && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{vestingCliffString}</Flex>}\n width=\"180px\"\n placement=\"bottomRight\"\n transformTip=\"translate(13%, 0%)\"\n >\n <Flex sx={{ opacity: 0.6, ml: '6px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n )}\n </div>\n <div className=\"tokens-remaining-column\">\n {bondSoldOut ? (\n '-'\n ) : (\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={percentageAvailable} />}\n style={{\n width: '127px',\n height: '25px',\n flexDirection: 'column',\n justifyContent: 'center',\n display: ['none', 'none', 'none', 'flex'],\n }}\n showTooltip={true}\n toolTip={remainingTokensString}\n />\n )}\n </div>\n <div className=\"tooltip-column\">\n {soldoutBondsCount ? (\n <Flex sx={{ gap: '5px', fontSize: '13px', fontWeight: 500, opacity: 0.5 }}>\n ({soldoutBondsCount})\n <Svg icon=\"caret\" direction={isOpen ? 'up' : 'down'} width=\"8px\" />\n </Flex>\n ) : (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={payoutToken?.address?.[bondChain] ?? ''}\n earnTokenSymbol={payoutToken?.symbol ?? ''}\n bondContract={bondAddress ?? ''}\n projectLink={projectURL}\n twitter={twitterURL}\n chain={bondChain}\n isSoldOut={bondSoldOut}\n billType={billType}\n cgId={cgId}\n dexscreener={dexscreener}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(7%, -2%)\"\n >\n <Flex className=\"more-icon\" sx={{ opacity: 0.8 }}>\n <Svg icon=\"more\" width=\"25px\" />\n </Flex>\n </TooltipBubble>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default BondRow\n"],"names":["_jsx","_jsxs","Tooltip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BondRow.js","sources":["../../../../../src/views/Bonds/components/BondRows/BondRow.tsx"],"sourcesContent":["import React from 'react'\nimport { TrueBondPrices } from '../../../../types/bonds'\nimport ProgressBar from '../../../../components/ProgressBar/ProgressBar'\nimport ProgressBarWrapper from '../../../../components/ProgressBar/ProgressBarWrapper'\nimport TokenInfoAndName from '../../../../components/TokenInfoAndName'\nimport Tooltip from '../../../../components/Tooltip/Tooltip'\nimport { ChainId, LaunchBondTiers, MarketingCampaign, Token } from '@ape.swap/apeswap-lists'\nimport useModal from '../../../../hooks/useModal'\nimport ModalHandler from './ModalHandler'\nimport track from '../../../../utils/track'\nimport BonusContainer from '../BonusComponents/BonusContainer'\nimport ModalHandlerPreTGE from './ModalHandlerPreTGE'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport SafeHTMLComponent from '../../../../components/SafeHTMLComponent'\nimport { MCBondRowStyles } from '../../../../utils/campaignStyles'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\ninterface BondRowProps {\n bondAddress: string\n bondChain: ChainId\n marketingCampaign?: MarketingCampaign\n payoutToken: Token\n billType: string\n tag?: string\n bondSoldOut?: boolean\n trueBondPrices?: TrueBondPrices[]\n minTier?: LaunchBondTiers\n bonus?: string\n airdropTooltip?: string\n vestingTermString: string\n vestingCliffString?: string\n vestingTermsComponent?: React.ReactNode\n percentageAvailable: number\n remainingTokensString: string\n projectURL?: string\n twitterURL?: string\n shortDescription?: string\n soldoutBondsCount?: number\n isOpen?: boolean\n cgId?: string\n dexscreener?: string\n}\n\nconst BondRow: React.FC<BondRowProps> = ({\n bondAddress,\n bondChain,\n marketingCampaign,\n payoutToken,\n billType,\n tag,\n bondSoldOut,\n trueBondPrices,\n minTier,\n bonus,\n airdropTooltip,\n vestingTermString,\n vestingTermsComponent,\n vestingCliffString,\n percentageAvailable,\n remainingTokensString,\n projectURL,\n twitterURL,\n shortDescription,\n soldoutBondsCount,\n isOpen,\n cgId,\n dexscreener,\n}) => {\n const SDKConfig = useSDKConfig()\n\n // Modal\n const [openBuyModal] = useModal(\n <ModalHandler bondAddress={bondAddress} bondChain={bondChain} />,\n true,\n true,\n `buyBondModal-${bondAddress.toLowerCase()}-${bondChain}`,\n )\n\n const [openPreTGEBondModal] = useModal(\n <ModalHandlerPreTGE bondAddress={bondAddress} bondChain={bondChain} />,\n true,\n true,\n `preTGEBuyBondModal:${bondAddress.toLowerCase()}-${bondChain}}`,\n )\n\n const handleOpenModal = () => {\n if (bondSoldOut) return\n if (billType === 'fcfs') {\n openPreTGEBondModal()\n } else {\n openBuyModal()\n }\n if (typeof window !== 'undefined') {\n const locationPath = window.location.pathname.replace('/', '')\n window.history.pushState({}, '', `${locationPath}?bondAddress=${bondAddress}&bondChain=${bondChain}`)\n }\n track({\n event: 'buyModalOpen',\n chain: bondChain,\n data: {\n cat: 'Row',\n bond: payoutToken.symbol,\n bondChain: bondChain,\n },\n })\n }\n\n return (\n <div\n className=\"bond-row\"\n onClick={handleOpenModal}\n key={`${bondAddress}-${bondChain}`}\n sx={{\n borderRadius: 'normal',\n // Insert special campaign styles here\n ...MCBondRowStyles[marketingCampaign!],\n cursor: !bondSoldOut || (soldoutBondsCount && !isOpen) ? 'pointer' : 'default',\n '&:hover .list-tag': {\n background: 'rgb(20 18 29 / 0.25)',\n },\n }}\n >\n <div\n className=\"token-info-container\"\n sx={{ width: ['45%', '45%', '45%', '30%'], minWidth: ['unset', 'unset', 'unset', '400px'] }}\n >\n <TokenInfoAndName\n tokenSymbol={payoutToken?.symbol}\n chain={bondChain}\n tag={tag}\n marketingCampaign={marketingCampaign}\n />\n </div>\n {SDKConfig.useCardsView && shortDescription && (\n <div className=\"short-description\">\n <SafeHTMLComponent html={shortDescription} />\n </div>\n )}\n <div className=\"bond-info-columns\" sx={{ width: ['55%', '55%', '55%', '70%'] }}>\n {!SDKConfig.useCardsView && <Flex sx={{ display: ['none', 'none', 'none', 'flex'], width: '125px' }} />}\n <BonusContainer\n trueBondPrices={trueBondPrices}\n minTier={minTier}\n bonus={bonus}\n airdropTooltip={airdropTooltip}\n isIREET={payoutToken.symbol.toLowerCase() === 'ireet'}\n />\n\n <div className=\"terms-column\">\n {vestingTermsComponent ? (\n vestingTermsComponent\n ) : (\n <>\n {vestingTermString}\n {vestingCliffString && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{vestingCliffString}</Flex>}\n width=\"180px\"\n placement=\"bottomRight\"\n transformTip=\"translate(13%, 0%)\"\n >\n <Flex sx={{ opacity: 0.6, ml: '6px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n )}\n </>\n )}\n </div>\n <div className=\"tokens-remaining-column\">\n {bondSoldOut ? (\n '-'\n ) : (\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={percentageAvailable} />}\n style={{\n width: '127px',\n height: '25px',\n flexDirection: 'column',\n justifyContent: 'center',\n display: ['none', 'none', 'none', 'flex'],\n }}\n showTooltip={true}\n toolTip={remainingTokensString}\n />\n )}\n </div>\n <div className=\"tooltip-column\">\n {soldoutBondsCount ? (\n <Flex sx={{ gap: '5px', fontSize: '13px', fontWeight: 500, opacity: 0.5 }}>\n ({soldoutBondsCount})\n <Svg icon=\"caret\" direction={isOpen ? 'up' : 'down'} width=\"8px\" />\n </Flex>\n ) : (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Tooltip\n earnTokenContract={payoutToken?.address?.[bondChain] ?? ''}\n earnTokenSymbol={payoutToken?.symbol ?? ''}\n bondContract={bondAddress ?? ''}\n projectLink={projectURL}\n twitter={twitterURL}\n chain={bondChain}\n isSoldOut={bondSoldOut}\n billType={billType}\n cgId={cgId}\n dexscreener={dexscreener}\n />\n }\n width=\"205px\"\n placement=\"bottomRight\"\n transformTip=\"translate(7%, -2%)\"\n >\n <Flex className=\"more-icon\" sx={{ opacity: 0.8 }}>\n <Svg icon=\"more\" width=\"25px\" />\n </Flex>\n </TooltipBubble>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default BondRow\n"],"names":["_jsx","_jsxs","_Fragment","Tooltip"],"mappings":"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"}
|
|
@@ -51,23 +51,17 @@ const ParticipationSuccessful = ({ onDismiss, bond, inputAmount, }) => {
|
|
|
51
51
|
}, children: [jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between' }, children: [jsx(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: "Your Deposit" }), jsxs(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: [getFirstNonZeroDigits(inputValue, 2), " ", bond?.lpToken.symbol, jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["($", depositAmountUsd.toFixed(2), ")"] })] })] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '5px' }, children: [jsx(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: "Your Allocation" }), bond.yieldBond ? (jsx(Flex, { sx: {
|
|
52
52
|
fontSize: '12px',
|
|
53
53
|
fontWeight: 500,
|
|
54
|
-
}, children: jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["$", userAllocationUsd.toFixed(2), " + ", bond.yieldData?.apr, "% APR"] }) })) : (jsxs(Flex, { sx: {
|
|
54
|
+
}, children: jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["$", userAllocationUsd.toFixed(2), " + ", bond.yieldData?.apr?.toFixed(), "% APR"] }) })) : (jsxs(Flex, { sx: {
|
|
55
55
|
fontSize: '12px',
|
|
56
56
|
fontWeight: 500,
|
|
57
|
-
}, children: [getFirstNonZeroDigits(userAllocation, 2), " ", bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol, jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["($", userAllocationUsd.toFixed(2), ")"] })] }))] }), jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '5px' }, children: [jsxs(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: ["Initial Release", jsx(TooltipBubble, { placement: 'bottomLeft', transformTip: 'translate(-6%, 0%)', width: "250px", body: jsx(Flex, { sx: { justifyContent: 'center' }, children: `You'll be able to claim an initial release of ${initialRelease * 100}%
|
|
58
|
-
of your allocation on ${formattedFinishDate}` }), children: jsx(Flex, { sx: { alignItems: 'center', height: '100%', ml: '5px' }, children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }),
|
|
59
|
-
fontSize: '12px',
|
|
60
|
-
fontWeight: 500,
|
|
61
|
-
}, children: jsxs(Flex, { sx: {
|
|
62
|
-
color: 'textDisabledButton',
|
|
63
|
-
ml: '5px',
|
|
64
|
-
}, children: ["$", initialReleaseUsd.toFixed(2)] }) })) : (jsxs(Flex, { sx: {
|
|
57
|
+
}, children: [getFirstNonZeroDigits(userAllocation, 2), " ", bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol, jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["($", userAllocationUsd.toFixed(2), ")"] })] }))] }), !bond.yieldBond && (jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '5px' }, children: [jsxs(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: ["Initial Release", jsx(TooltipBubble, { placement: 'bottomLeft', transformTip: 'translate(-6%, 0%)', width: "250px", body: jsx(Flex, { sx: { justifyContent: 'center' }, children: `You'll be able to claim an initial release of ${initialRelease * 100}%
|
|
58
|
+
of your allocation on ${formattedFinishDate}` }), children: jsx(Flex, { sx: { alignItems: 'center', height: '100%', ml: '5px' }, children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), jsxs(Flex, { sx: {
|
|
65
59
|
fontSize: '12px',
|
|
66
60
|
fontWeight: 500,
|
|
67
61
|
}, children: [getFirstNonZeroDigits(initialReleaseAmount, 2), ' ', bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol, jsxs(Flex, { sx: {
|
|
68
62
|
color: 'textDisabledButton',
|
|
69
63
|
ml: '5px',
|
|
70
|
-
}, children: ["($", initialReleaseUsd.toFixed(2), ")"] })] })
|
|
64
|
+
}, children: ["($", initialReleaseUsd.toFixed(2), ")"] })] })] })), initialRelease !== 1 && (jsxs(Flex, { sx: { width: '100%', justifyContent: 'space-between', mt: '5px' }, children: [jsxs(Flex, { sx: { fontSize: '12px', fontWeight: 400 }, children: ["Vested Tokens", jsx(TooltipBubble, { placement: 'bottomLeft', transformTip: 'translate(-6%, 0%)', width: "250px", body: jsx(Flex, { sx: { justifyContent: 'center' }, children: `Remaining tokens will vest linearly over ${getTimePeriods(bond.vestingTerm).months} months after claiming the initial release.` }), children: jsx(Flex, { sx: { alignItems: 'center', height: '100%', ml: '5px' }, children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), jsxs(Flex, { sx: {
|
|
71
65
|
fontSize: '12px',
|
|
72
66
|
fontWeight: 500,
|
|
73
67
|
}, children: [getFirstNonZeroDigits(vestedAmount, 2), " ", bond?.earnToken.symbol, jsxs(Flex, { sx: { color: 'textDisabledButton', ml: '5px' }, children: ["($", vestedAmountUsd.toFixed(2), ")"] })] })] })), jsx(Flex, { sx: { mt: '10px' }, children: `Your purchased bond can be found under the "Your Bonds" tab.` })] }), jsx(Button, { onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticipationSuccessful.js","sources":["../../../src/views/BuyBond/ParticipationSuccessful.tsx"],"sourcesContent":["import React from 'react'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport { getFirstNonZeroDigits } from '../../utils/roundNumber'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { BondsData } from '../../types/bonds'\nimport useActiveView from '../../state/activeView'\n\nconst ParticipationSuccessful = ({\n onDismiss,\n bond,\n inputAmount,\n}: {\n onDismiss?: () => void\n bond: BondsData\n inputAmount?: string\n}) => {\n const { handleToogle } = useActiveView()\n const { data: tokenPrices } = useTokenPrices()\n const principalTokenPrice = tokenPrices?.[bond?.chainId]?.find(\n (token) => token?.tokenAddress?.toLowerCase() === bond?.lpToken?.address[bond?.chainId]?.toLowerCase(),\n )?.price\n const inputValue = parseFloat(inputAmount ?? '0')\n const depositAmountUsd = inputValue * (principalTokenPrice ?? 0)\n const initPrice = bond?.initPrice ?? 0\n const initialRelease = bond?.initialRelease ?? 0\n\n const userAllocation = depositAmountUsd / initPrice\n const userAllocationUsd = userAllocation * initPrice\n\n const finishTime = (bond?.redeemTime ?? 0) * 1000\n const finishDate = new Date(finishTime)\n const month = finishDate.toLocaleDateString('en-US', { month: 'short' })\n const getDayWithSuffix = (day: number) => {\n if (day > 3 && day < 21) return `${day}th`\n switch (day % 10) {\n case 1:\n return `${day}st`\n case 2:\n return `${day}nd`\n case 3:\n return `${day}rd`\n default:\n return `${day}th`\n }\n }\n const day = finishDate.getDate()\n const formattedFinishDate = `${month} ${getDayWithSuffix(day)} at 13 UTC.` //TODO fix this\n const initialReleaseAmount = userAllocation * initialRelease\n const initialReleaseUsd = initialReleaseAmount * (bond?.initPrice ?? 0)\n\n const vestedAmount = userAllocation * (1 - initialRelease)\n const vestedAmountUsd = vestedAmount * (bond?.initPrice ?? 0)\n\n return (\n <Modal>\n <ModalHeader hideDivider />\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', justifyContent: 'center', mb: '15px' }}>\n <Text sx={{ fontSize: '22px', fontWeight: 700 }}>Participation Successful</Text>\n </Flex>\n <Flex\n sx={{\n fontSize: '14px',\n fontWeight: 400,\n flexDirection: 'column',\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>Your Deposit</Flex>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n {getFirstNonZeroDigits(inputValue, 2)} {bond?.lpToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${depositAmountUsd.toFixed(2)})</Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>Your Allocation</Flex>\n {bond.yieldBond ? (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>\n ${userAllocationUsd.toFixed(2)} + {bond.yieldData?.apr}% APR\n </Flex>\n </Flex>\n ) : (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(userAllocation, 2)} {bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${userAllocationUsd.toFixed(2)})</Flex>\n </Flex>\n )}\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n Initial Release\n <TooltipBubble\n placement={'bottomLeft'}\n transformTip={'translate(-6%, 0%)'}\n width=\"250px\"\n body={\n <Flex sx={{ justifyContent: 'center' }}>\n {`You'll be able to claim an initial release of ${initialRelease * 100}% \n of your allocation on ${formattedFinishDate}`}\n </Flex>\n }\n >\n <Flex sx={{ alignItems: 'center', height: '100%', ml: '5px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n {bond.yieldBond ? (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n <Flex\n sx={{\n color: 'textDisabledButton',\n ml: '5px',\n }}\n >\n ${initialReleaseUsd.toFixed(2)}\n </Flex>\n </Flex>\n ) : (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(initialReleaseAmount, 2)}{' '}\n {bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol}\n <Flex\n sx={{\n color: 'textDisabledButton',\n ml: '5px',\n }}\n >\n (${initialReleaseUsd.toFixed(2)})\n </Flex>\n </Flex>\n )}\n </Flex>\n {initialRelease !== 1 && (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n Vested Tokens\n <TooltipBubble\n placement={'bottomLeft'}\n transformTip={'translate(-6%, 0%)'}\n width=\"250px\"\n body={\n <Flex sx={{ justifyContent: 'center' }}>\n {`Remaining tokens will vest linearly over ${getTimePeriods(bond.vestingTerm).months} months after claiming the initial release.`}\n </Flex>\n }\n >\n <Flex sx={{ alignItems: 'center', height: '100%', ml: '5px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(vestedAmount, 2)} {bond?.earnToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${vestedAmountUsd.toFixed(2)})</Flex>\n </Flex>\n </Flex>\n )}\n <Flex sx={{ mt: '10px' }}>{`Your purchased bond can be found under the \"Your Bonds\" tab.`}</Flex>\n </Flex>\n <Button\n onClick={() => {\n handleToogle('Your Bonds')\n onDismiss?.()\n }}\n sx={{ fontSize: '14px', width: '100%', mt: '15px', height: '35px' }}\n >\n see your Bonds\n </Button>\n </Flex>\n </Modal>\n )\n}\n\nexport default ParticipationSuccessful\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParticipationSuccessful.js","sources":["../../../src/views/BuyBond/ParticipationSuccessful.tsx"],"sourcesContent":["import React from 'react'\nimport useTokenPrices from '../../state/tokenPrices/useTokenPrices'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\nimport { getFirstNonZeroDigits } from '../../utils/roundNumber'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport { BondsData } from '../../types/bonds'\nimport useActiveView from '../../state/activeView'\n\nconst ParticipationSuccessful = ({\n onDismiss,\n bond,\n inputAmount,\n}: {\n onDismiss?: () => void\n bond: BondsData\n inputAmount?: string\n}) => {\n const { handleToogle } = useActiveView()\n const { data: tokenPrices } = useTokenPrices()\n const principalTokenPrice = tokenPrices?.[bond?.chainId]?.find(\n (token) => token?.tokenAddress?.toLowerCase() === bond?.lpToken?.address[bond?.chainId]?.toLowerCase(),\n )?.price\n const inputValue = parseFloat(inputAmount ?? '0')\n const depositAmountUsd = inputValue * (principalTokenPrice ?? 0)\n const initPrice = bond?.initPrice ?? 0\n const initialRelease = bond?.initialRelease ?? 0\n\n const userAllocation = depositAmountUsd / initPrice\n const userAllocationUsd = userAllocation * initPrice\n\n const finishTime = (bond?.redeemTime ?? 0) * 1000\n const finishDate = new Date(finishTime)\n const month = finishDate.toLocaleDateString('en-US', { month: 'short' })\n const getDayWithSuffix = (day: number) => {\n if (day > 3 && day < 21) return `${day}th`\n switch (day % 10) {\n case 1:\n return `${day}st`\n case 2:\n return `${day}nd`\n case 3:\n return `${day}rd`\n default:\n return `${day}th`\n }\n }\n const day = finishDate.getDate()\n const formattedFinishDate = `${month} ${getDayWithSuffix(day)} at 13 UTC.` //TODO fix this\n const initialReleaseAmount = userAllocation * initialRelease\n const initialReleaseUsd = initialReleaseAmount * (bond?.initPrice ?? 0)\n\n const vestedAmount = userAllocation * (1 - initialRelease)\n const vestedAmountUsd = vestedAmount * (bond?.initPrice ?? 0)\n\n return (\n <Modal>\n <ModalHeader hideDivider />\n <Flex sx={{ flexDirection: 'column' }}>\n <Flex sx={{ width: '100%', justifyContent: 'center', mb: '15px' }}>\n <Text sx={{ fontSize: '22px', fontWeight: 700 }}>Participation Successful</Text>\n </Flex>\n <Flex\n sx={{\n fontSize: '14px',\n fontWeight: 400,\n flexDirection: 'column',\n }}\n >\n <Flex sx={{ width: '100%', justifyContent: 'space-between' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>Your Deposit</Flex>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n {getFirstNonZeroDigits(inputValue, 2)} {bond?.lpToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${depositAmountUsd.toFixed(2)})</Flex>\n </Flex>\n </Flex>\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>Your Allocation</Flex>\n {bond.yieldBond ? (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>\n ${userAllocationUsd.toFixed(2)} + {bond.yieldData?.apr?.toFixed()}% APR\n </Flex>\n </Flex>\n ) : (\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(userAllocation, 2)} {bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${userAllocationUsd.toFixed(2)})</Flex>\n </Flex>\n )}\n </Flex>\n {!bond.yieldBond && (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n Initial Release\n <TooltipBubble\n placement={'bottomLeft'}\n transformTip={'translate(-6%, 0%)'}\n width=\"250px\"\n body={\n <Flex sx={{ justifyContent: 'center' }}>\n {`You'll be able to claim an initial release of ${initialRelease * 100}% \n of your allocation on ${formattedFinishDate}`}\n </Flex>\n }\n >\n <Flex sx={{ alignItems: 'center', height: '100%', ml: '5px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(initialReleaseAmount, 2)}{' '}\n {bond?.underlyingEarnToken?.symbol || bond?.earnToken.symbol}\n <Flex\n sx={{\n color: 'textDisabledButton',\n ml: '5px',\n }}\n >\n (${initialReleaseUsd.toFixed(2)})\n </Flex>\n </Flex>\n </Flex>\n )}\n {initialRelease !== 1 && (\n <Flex sx={{ width: '100%', justifyContent: 'space-between', mt: '5px' }}>\n <Flex sx={{ fontSize: '12px', fontWeight: 400 }}>\n Vested Tokens\n <TooltipBubble\n placement={'bottomLeft'}\n transformTip={'translate(-6%, 0%)'}\n width=\"250px\"\n body={\n <Flex sx={{ justifyContent: 'center' }}>\n {`Remaining tokens will vest linearly over ${getTimePeriods(bond.vestingTerm).months} months after claiming the initial release.`}\n </Flex>\n }\n >\n <Flex sx={{ alignItems: 'center', height: '100%', ml: '5px' }}>\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex\n sx={{\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n {getFirstNonZeroDigits(vestedAmount, 2)} {bond?.earnToken.symbol}\n <Flex sx={{ color: 'textDisabledButton', ml: '5px' }}>(${vestedAmountUsd.toFixed(2)})</Flex>\n </Flex>\n </Flex>\n )}\n <Flex sx={{ mt: '10px' }}>{`Your purchased bond can be found under the \"Your Bonds\" tab.`}</Flex>\n </Flex>\n <Button\n onClick={() => {\n handleToogle('Your Bonds')\n onDismiss?.()\n }}\n sx={{ fontSize: '14px', width: '100%', mt: '15px', height: '35px' }}\n >\n see your Bonds\n </Button>\n </Flex>\n </Modal>\n )\n}\n\nexport default ParticipationSuccessful\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ const BondCardsPreTGE = ({ bond }) => {
|
|
|
38
38
|
borderBottomRightRadius: 'normal',
|
|
39
39
|
borderBottomLeftRadius: 'normal',
|
|
40
40
|
},
|
|
41
|
-
}, onClick: () => setShowLocalTime((prev) => !prev), children: [jsxs(Flex, { className: "bond-card-title", children: ["Sale
|
|
41
|
+
}, onClick: () => setShowLocalTime((prev) => !prev), children: [jsxs(Flex, { className: "bond-card-title", children: ["Sale Ends", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "This is the date and time when the sale finishes. Tokens will be distributed 2 hours after the sale finishes. CONFIRM" }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), formatUTCDate(new Date((bond.finishTime ?? 0) * 1000), false, showLocalTime), ' ', showLocalTime ? 'Local' : 'UTC'] })) : (jsxs("div", { className: "bond-card-block", sx: {
|
|
42
42
|
fontSize: '13px !important',
|
|
43
43
|
borderRadius: ['0px', '0px', '0px', 'normal'],
|
|
44
44
|
'&:first-of-type': {
|
|
@@ -49,7 +49,7 @@ const BondCardsPreTGE = ({ bond }) => {
|
|
|
49
49
|
borderBottomRightRadius: 'normal',
|
|
50
50
|
borderBottomLeftRadius: 'normal',
|
|
51
51
|
},
|
|
52
|
-
}, children: [jsxs(Flex, { className: "bond-card-title", children: ["TGE", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "This is the date and time when this token will become officially live on-chain." }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), bond.tgeString] })),
|
|
52
|
+
}, children: [jsxs(Flex, { className: "bond-card-title", children: ["TGE", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "This is the date and time when this token will become officially live on-chain." }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), bond.tgeString] })), jsx("div", { className: "bond-card-block", sx: {
|
|
53
53
|
borderRadius: ['0px', '0px', '0px', 'normal'],
|
|
54
54
|
'&:first-of-type': {
|
|
55
55
|
borderTopRightRadius: 'normal',
|
|
@@ -59,7 +59,7 @@ const BondCardsPreTGE = ({ bond }) => {
|
|
|
59
59
|
borderBottomRightRadius: 'normal',
|
|
60
60
|
borderBottomLeftRadius: 'normal',
|
|
61
61
|
},
|
|
62
|
-
}, children: [jsxs("div", { className: "bond-card-title", children: ["Initial Release", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsxs(Flex, { children: ["This is the percentage of tokens you can claim immediately on ", bond.tgeString, ". The rest follows the vesting schedule."] }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), initialRelease, "%"] }), !bond.yieldBond && (jsxs("div", { className: "bond-card-block", sx: {
|
|
62
|
+
}, children: bond.yieldBond ? (jsxs(Fragment, { children: [jsxs("div", { className: "bond-card-title", children: ["Pool Duration", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsx(Flex, { children: "This is the duration of the yield that will be distributed through the bond." }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), jsxs(Flex, { sx: { color: 'text' }, children: [getTimePeriods((bond?.yieldData?.rewardDistributionEnd ?? 0) - parseInt(bond.startVestingTimestamp ?? '0'), true).days, ' ', "Days"] })] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "bond-card-title", children: ["Initial Release", jsx(TooltipBubble, { className: "tooltip-bubble", body: jsxs(Flex, { children: ["This is the percentage of tokens you can claim immediately on ", bond.tgeString, ". The rest follows the vesting schedule."] }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)", children: jsx("div", { className: "bond-card-tooltip", children: jsx(Svg, { icon: "questionCircle", width: "12px" }) }) })] }), initialRelease, "%"] })) }), !bond.yieldBond && (jsxs("div", { className: "bond-card-block", sx: {
|
|
63
63
|
borderRadius: ['0px', '0px', '0px', 'normal'],
|
|
64
64
|
'&:first-of-type': {
|
|
65
65
|
borderTopRightRadius: 'normal',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BondCardsPreTGE.js","sources":["../../../../../src/views/BuyBond/components/BondCards/BondCardsPreTGE.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { BondsData } from '../../../../types/bonds'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport { formatUTCDate } from '../../../../utils/dates/formatDate'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BondCardsPreTGE = ({ bond }: { bond: BondsData }) => {\n const isMobile = useIsMobile()\n const [showLocalTime, setShowLocalTime] = useState(false)\n const bonus = bond?.trueBondPrices?.[0].bonus ?? 0\n const airdropBonus = bond.airdropBonus ?? 0\n const bonusToUse = bonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n return (\n <div className=\"bonds-cards\">\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <Flex className=\"bond-card-title\" sx={{ alignItems: 'center' }}>\n {bond.yieldBond ? 'APR' : 'Bonus'}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n {bond.yieldBond\n ? 'Some Text explaining how the APR works'\n : 'This is the percentage of additional tokens you’ll get compared to buying at market price.'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {bond.yieldBond ? (\n <Flex sx={{ color: 'success' }}>{bond.yieldData?.apr.toFixed()}%</Flex>\n ) : (\n <Flex sx={{ color: 'success', alignItems: 'center' }}>\n {bonusToUse?.toFixed(0)}%\n {bond.airdropTooltip && (\n <TooltipBubble\n body={<>{bond.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 </div>\n {bond.yieldBond ? (\n <div\n className=\"bond-card-block\"\n sx={{\n fontSize: '13px !important',\n borderRadius: ['0px', '0px', '0px', 'normal'],\n cursor: 'pointer',\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n onClick={() => setShowLocalTime((prev) => !prev)}\n >\n <Flex className=\"bond-card-title\">\n Sale End\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n This is the date and time when the sale finishes. Tokens will be distributed 2 hours after the sale\n finishes. CONFIRM\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {formatUTCDate(new Date((bond.finishTime ?? 0) * 1000), false, showLocalTime)}{' '}\n {showLocalTime ? 'Local' : 'UTC'}\n </div>\n ) : (\n <div\n className=\"bond-card-block\"\n sx={{\n fontSize: '13px !important',\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <Flex className=\"bond-card-title\">\n TGE\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date and time when this token will become officially live on-chain.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {bond.tgeString}\n </div>\n )}\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <div className=\"bond-card-title\">\n Initial Release\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n This is the percentage of tokens you can claim immediately on {bond.tgeString}. The rest follows the\n vesting schedule.\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </div>\n {initialRelease}%\n </div>\n {!bond.yieldBond && (\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <div className=\"bond-card-title\">\n Vesting Terms\n {initialRelease !== 100 && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n Remaining tokens will vest linearly over {getTimePeriods(bond?.vestingTerm).months} months after{' '}\n {formatUTCDate(new Date(parseInt(bond.startVestingTimestamp ?? '0') * 1000))} UTC.\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n )}\n </div>\n {initialRelease === 100 ? `0 D` : `${getTimePeriods(bond?.vestingTerm)?.months} Mo`}\n </div>\n )}\n </div>\n )\n}\n\nexport default BondCardsPreTGE\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BondCardsPreTGE.js","sources":["../../../../../src/views/BuyBond/components/BondCards/BondCardsPreTGE.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { BondsData } from '../../../../types/bonds'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport { formatUTCDate } from '../../../../utils/dates/formatDate'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport TooltipBubble from '../../../../components/uikit-sdk/TooltipBubble'\nimport Svg from '../../../../components/uikit-sdk/Svg'\n\nconst BondCardsPreTGE = ({ bond }: { bond: BondsData }) => {\n const isMobile = useIsMobile()\n const [showLocalTime, setShowLocalTime] = useState(false)\n const bonus = bond?.trueBondPrices?.[0].bonus ?? 0\n const airdropBonus = bond.airdropBonus ?? 0\n const bonusToUse = bonus + airdropBonus\n const initialRelease = (bond?.initialRelease ?? 0) * 100\n return (\n <div className=\"bonds-cards\">\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <Flex className=\"bond-card-title\" sx={{ alignItems: 'center' }}>\n {bond.yieldBond ? 'APR' : 'Bonus'}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n {bond.yieldBond\n ? 'Some Text explaining how the APR works'\n : 'This is the percentage of additional tokens you’ll get compared to buying at market price.'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {bond.yieldBond ? (\n <Flex sx={{ color: 'success' }}>{bond.yieldData?.apr.toFixed()}%</Flex>\n ) : (\n <Flex sx={{ color: 'success', alignItems: 'center' }}>\n {bonusToUse?.toFixed(0)}%\n {bond.airdropTooltip && (\n <TooltipBubble\n body={<>{bond.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 </div>\n {bond.yieldBond ? (\n <div\n className=\"bond-card-block\"\n sx={{\n fontSize: '13px !important',\n borderRadius: ['0px', '0px', '0px', 'normal'],\n cursor: 'pointer',\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n onClick={() => setShowLocalTime((prev) => !prev)}\n >\n <Flex className=\"bond-card-title\">\n Sale Ends\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n This is the date and time when the sale finishes. Tokens will be distributed 2 hours after the sale\n finishes. CONFIRM\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {formatUTCDate(new Date((bond.finishTime ?? 0) * 1000), false, showLocalTime)}{' '}\n {showLocalTime ? 'Local' : 'UTC'}\n </div>\n ) : (\n <div\n className=\"bond-card-block\"\n sx={{\n fontSize: '13px !important',\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <Flex className=\"bond-card-title\">\n TGE\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date and time when this token will become officially live on-chain.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </Flex>\n {bond.tgeString}\n </div>\n )}\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n {bond.yieldBond ? (\n <>\n <div className=\"bond-card-title\">\n Pool Duration\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the duration of the yield that will be distributed through the bond.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </div>\n <Flex sx={{ color: 'text' }}>\n {\n getTimePeriods(\n (bond?.yieldData?.rewardDistributionEnd ?? 0) - parseInt(bond.startVestingTimestamp ?? '0'),\n true,\n ).days\n }{' '}\n Days\n </Flex>\n </>\n ) : (\n <>\n <div className=\"bond-card-title\">\n Initial Release\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n This is the percentage of tokens you can claim immediately on {bond.tgeString}. The rest follows the\n vesting schedule.\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n </div>\n {initialRelease}%\n </>\n )}\n </div>\n {!bond.yieldBond && (\n <div\n className=\"bond-card-block\"\n sx={{\n borderRadius: ['0px', '0px', '0px', 'normal'],\n '&:first-of-type': {\n borderTopRightRadius: 'normal',\n borderTopLeftRadius: 'normal',\n },\n\n '&:last-of-type': {\n borderBottomRightRadius: 'normal',\n borderBottomLeftRadius: 'normal',\n },\n }}\n >\n <div className=\"bond-card-title\">\n Vesting Terms\n {initialRelease !== 100 && (\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex>\n Remaining tokens will vest linearly over {getTimePeriods(bond?.vestingTerm).months} months after{' '}\n {formatUTCDate(new Date(parseInt(bond.startVestingTimestamp ?? '0') * 1000))} UTC.\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, -5%)\"\n >\n <div className=\"bond-card-tooltip\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </div>\n </TooltipBubble>\n )}\n </div>\n {initialRelease === 100 ? `0 D` : `${getTimePeriods(bond?.vestingTerm)?.months} Mo`}\n </div>\n )}\n </div>\n )\n}\n\nexport default BondCardsPreTGE\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ const YourBondsModalYield = ({ userBill, onDismiss }) => {
|
|
|
39
39
|
const [useLocal, setUseLocal] = useState(false);
|
|
40
40
|
const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId);
|
|
41
41
|
// Static Data
|
|
42
|
-
const depositUSD = getBalanceNumber(userBill?.accountInfo?.depositAmount ?? '0'); // assumes raise is in stables
|
|
42
|
+
const depositUSD = getBalanceNumber(userBill?.accountInfo?.depositAmount ?? '0', userBill?.lpToken.decimals[userBill?.chainId] ?? 18); // assumes raise is in stables
|
|
43
43
|
const payoutSymbol = userBill?.underlyingEarnToken?.symbol;
|
|
44
44
|
const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0');
|
|
45
45
|
const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YourBondsModalYield.js","sources":["../../../src/views/YourBondsModalYield/YourBondsModalYield.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../config/constants/tooltips'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\nimport useUserBondsPreTGE, { PreTGEUserBonds } from '../../state/bonds/useUserBondsPreTGE'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { formatUTCDate } from '../../utils/dates/formatDate'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport LaunchBondABI_V_2_4_1 from '../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../utils/reportError'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { formatTimeLeft } from '../../utils/getTimePeriods'\nimport useModal from '../../hooks/useModal'\nimport UnstakeModalYield from './components/UnstakeModalYield/UnstakeModalYield'\n\nconst YourBondsModalYield = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Hooks\n const { refetch } = useUserBondsPreTGE()\n const { address: account, chainId } = useEVMAccount()\n const { switchChainAsync } = useSwitchChain()\n const { writeContractAsync } = useWriteContract()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n //State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [useLocal, setUseLocal] = useState(false)\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const depositUSD = getBalanceNumber(userBill?.accountInfo?.depositAmount ?? '0') // assumes raise is in stables\n const payoutSymbol = userBill?.underlyingEarnToken?.symbol\n const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0')\n const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0)\n const claimedUSD = (userBill?.yieldData?.claimed ?? 0) * (userBill?.earnTokenPrice ?? 0)\n const saleFinalized = userBill?.finalized\n const hasRedeemed = userBill?.accountInfo?.hasRedeemed\n const canRedeem = saleFinalized && !hasRedeemed\n const endTimeFinished = Date.now() > (userBill?.endTime ?? 0) * 1000\n const depositedAssets = userBill?.yieldData?.depositedAssets ?? 0\n const depositedAssetsUSD = depositedAssets * (userBill?.earnTokenPrice ?? 0)\n\n const redeemableInLong = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, false)\n const redeemableInShort = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n\n // Handlers\n const handleRedeemBond = async () => {\n setLoading(true)\n writeContractAsync({\n address: userBill?.contractAddress[userBill?.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'redeem',\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'redeemLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClaim = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'withdraw',\n args: [userBill?.yieldData?.claimableRewards, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClick = () => {\n if (hasRedeemed) {\n handleClaim()\n } else {\n handleRedeemBond()\n }\n }\n\n const handleModalClose = useCallback(() => {\n console.log('refetch!')\n refetch()\n setTimeout(() => onDismiss?.(), 1500)\n }, [refetch, onDismiss])\n\n const [onOpenUnstakeModal] = useModal(\n <UnstakeModalYield userBill={userBill} onSuccessFullTx={handleModalClose} />,\n false,\n false,\n `unstakeModalYield${userBill?.contractAddress[userBill?.chainId]}`,\n )\n\n useEffect(() => {\n if (isSuccess) {\n console.log('refetch!')\n refetch()\n }\n }, [isSuccess, refetch])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n p: '0px',\n top: '56%',\n }}\n onDismiss={onDismiss}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n borderRadius: 'normal',\n position: 'relative',\n background: 'white2',\n p: '20px',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex sx={{ mt: '10px', flexDirection: 'column', gap: '10px' }}>\n <Flex sx={{ width: '100%', gap: '15px', position: 'relative' }}>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '65%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Deposit</Flex>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {saleFinalized && hasRedeemed ? (\n <>\n <TokenImage symbol={userBill?.underlyingEarnToken?.symbol} size={18} />\n {formatNumberSI(depositedAssets)}\n <span sx={{ color: 'textDisabledButton', fontSize: '12px' }}>\n (${formatNumberSI(depositedAssetsUSD)})\n </span>\n </>\n ) : (\n <>\n <TokenImage symbol={userBill?.lpToken.symbol} size={18} />\n {formatNumberSI(depositUSD)}\n </>\n )}\n </Flex>\n </Flex>\n <Flex\n sx={{ position: 'absolute', top: '50%', left: '65%', transform: 'translateY(-50%) translateX(-50%)' }}\n >\n <Svg icon=\"arrow\" direction=\"right\" width={'5px'} />\n </Flex>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '34%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>APR</Flex>\n <Flex sx={{ color: 'success', fontWeight: 700 }}>{userBill?.yieldData?.apr?.toFixed()}%</Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n flexDirection: 'column',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '10px 10px 0 0',\n }}\n >\n {hasRedeemed ? (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Vault Ends</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date when reward distribution finishes.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n {formatUTCDate(new Date((userBill?.yieldData?.rewardDistributionEnd ?? 0) * 1000))}\n </Flex>\n </>\n ) : (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Yield starts in</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Time left for the vault to start accruing rewards.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n {endTimeFinished && !canRedeem ? (\n 'Soon...'\n ) : canRedeem ? (\n 'Activate Yield'\n ) : (\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {redeemableInLong}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex onClick={() => setUseLocal(!useLocal)} sx={{ cursor: 'pointer' }}>\n Claimable at{' '}\n {formatUTCDate(new Date((userBill?.redeemTime ?? 0) * 1000), false, useLocal)}{' '}\n {useLocal ? 'Local' : 'UTC'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n )}\n </>\n )}\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimable Rewards</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Amount of tokens that can be claimed in this moment</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimableRewards, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimableRewardsUSD)})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '0px 0px 10px 10px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimed </Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(userBill?.yieldData?.claimed, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimedUSD)})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n gap: ['10px', '10px', '10px', '15px'],\n height: '40px',\n }}\n >\n <Button\n sx={{ width: '65%' }}\n disabled={!saleFinalized || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={() => {\n if (chainId !== userBill?.chainId) {\n switchChainAsync({ chainId: userBill?.chainId! })\n .then(() => {\n handleClick()\n })\n .catch()\n } else {\n handleClick()\n }\n }}\n >\n {canRedeem\n ? 'Activate yield'\n : hasRedeemed\n ? 'Claim rewards'\n : `Claimable ${endTimeFinished && !saleFinalized ? 'soon' : `in ${redeemableInShort}`}`}\n </Button>\n <Button\n sx={{ width: '34%' }}\n disabled={!saleFinalized || !hasRedeemed}\n variant=\"secondary\"\n onClick={onOpenUnstakeModal}\n >\n Unstake\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModalYield\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YourBondsModalYield.js","sources":["../../../src/views/YourBondsModalYield/YourBondsModalYield.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../config/constants/tooltips'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\nimport useUserBondsPreTGE, { PreTGEUserBonds } from '../../state/bonds/useUserBondsPreTGE'\nimport { getBalanceNumber } from '../../utils/getBalanceNumber'\nimport { formatUTCDate } from '../../utils/dates/formatDate'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport { useSwitchChain, useWriteContract } from 'wagmi'\nimport LaunchBondABI_V_2_4_1 from '../../config/abi/launchBond_v2_4_1.json'\nimport Vault_Shares_ABI from '../../config/abi/Vault_Shares.json'\nimport { reportError } from '../../utils/reportError'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { usePopups } from '../../state/popups/usePopups'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { formatTimeLeft } from '../../utils/getTimePeriods'\nimport useModal from '../../hooks/useModal'\nimport UnstakeModalYield from './components/UnstakeModalYield/UnstakeModalYield'\n\nconst YourBondsModalYield = ({ userBill, onDismiss }: { userBill?: PreTGEUserBonds; onDismiss?: () => void }) => {\n // Hooks\n const { refetch } = useUserBondsPreTGE()\n const { address: account, chainId } = useEVMAccount()\n const { switchChainAsync } = useSwitchChain()\n const { writeContractAsync } = useWriteContract()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n //State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [useLocal, setUseLocal] = useState(false)\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const depositUSD = getBalanceNumber(\n userBill?.accountInfo?.depositAmount ?? '0',\n userBill?.lpToken.decimals[userBill?.chainId] ?? 18,\n ) // assumes raise is in stables\n const payoutSymbol = userBill?.underlyingEarnToken?.symbol\n const claimableRewards = getBalanceNumber(userBill?.yieldData?.claimableRewards ?? '0')\n const claimableRewardsUSD = claimableRewards * (userBill?.earnTokenPrice ?? 0)\n const claimedUSD = (userBill?.yieldData?.claimed ?? 0) * (userBill?.earnTokenPrice ?? 0)\n const saleFinalized = userBill?.finalized\n const hasRedeemed = userBill?.accountInfo?.hasRedeemed\n const canRedeem = saleFinalized && !hasRedeemed\n const endTimeFinished = Date.now() > (userBill?.endTime ?? 0) * 1000\n const depositedAssets = userBill?.yieldData?.depositedAssets ?? 0\n const depositedAssetsUSD = depositedAssets * (userBill?.earnTokenPrice ?? 0)\n\n const redeemableInLong = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, false)\n const redeemableInShort = formatTimeLeft((userBill?.redeemTime ?? 0) - new Date().getTime() / 1000, true, true)\n\n // Handlers\n const handleRedeemBond = async () => {\n setLoading(true)\n writeContractAsync({\n address: userBill?.contractAddress[userBill?.chainId] as `0x${string}`,\n abi: LaunchBondABI_V_2_4_1,\n functionName: 'redeem',\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'redeemLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClaim = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'withdraw',\n args: [userBill?.yieldData?.claimableRewards, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n const handleClick = () => {\n if (hasRedeemed) {\n handleClaim()\n } else {\n handleRedeemBond()\n }\n }\n\n const handleModalClose = useCallback(() => {\n console.log('refetch!')\n refetch()\n setTimeout(() => onDismiss?.(), 1500)\n }, [refetch, onDismiss])\n\n const [onOpenUnstakeModal] = useModal(\n <UnstakeModalYield userBill={userBill} onSuccessFullTx={handleModalClose} />,\n false,\n false,\n `unstakeModalYield${userBill?.contractAddress[userBill?.chainId]}`,\n )\n\n useEffect(() => {\n if (isSuccess) {\n console.log('refetch!')\n refetch()\n }\n }, [isSuccess, refetch])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n p: '0px',\n top: '56%',\n }}\n onDismiss={onDismiss}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n borderRadius: 'normal',\n position: 'relative',\n background: 'white2',\n p: '20px',\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex sx={{ mt: '10px', flexDirection: 'column', gap: '10px' }}>\n <Flex sx={{ width: '100%', gap: '15px', position: 'relative' }}>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '65%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Deposit</Flex>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {saleFinalized && hasRedeemed ? (\n <>\n <TokenImage symbol={userBill?.underlyingEarnToken?.symbol} size={18} />\n {formatNumberSI(depositedAssets)}\n <span sx={{ color: 'textDisabledButton', fontSize: '12px' }}>\n (${formatNumberSI(depositedAssetsUSD)})\n </span>\n </>\n ) : (\n <>\n <TokenImage symbol={userBill?.lpToken.symbol} size={18} />\n {formatNumberSI(depositUSD)}\n </>\n )}\n </Flex>\n </Flex>\n <Flex\n sx={{ position: 'absolute', top: '50%', left: '65%', transform: 'translateY(-50%) translateX(-50%)' }}\n >\n <Svg icon=\"arrow\" direction=\"right\" width={'5px'} />\n </Flex>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '34%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>APR</Flex>\n <Flex sx={{ color: 'success', fontWeight: 700 }}>{userBill?.yieldData?.apr?.toFixed()}%</Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n flexDirection: 'column',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '10px 10px 0 0',\n }}\n >\n {hasRedeemed ? (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Vault Ends</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>This is the date when reward distribution finishes.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n {formatUTCDate(new Date((userBill?.yieldData?.rewardDistributionEnd ?? 0) * 1000))}\n </Flex>\n </>\n ) : (\n <>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Yield starts in</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Time left for the vault to start accruing rewards.</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n {endTimeFinished && !canRedeem ? (\n 'Soon...'\n ) : canRedeem ? (\n 'Activate Yield'\n ) : (\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n {redeemableInLong}\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={\n <Flex onClick={() => setUseLocal(!useLocal)} sx={{ cursor: 'pointer' }}>\n Claimable at{' '}\n {formatUTCDate(new Date((userBill?.redeemTime ?? 0) * 1000), false, useLocal)}{' '}\n {useLocal ? 'Local' : 'UTC'}\n </Flex>\n }\n width=\"230px\"\n placement=\"bottomRight\"\n transformTip=\"translate(10%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n )}\n </>\n )}\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimable Rewards</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>Amount of tokens that can be claimed in this moment</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimableRewards, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimableRewardsUSD)})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '0px 0px 10px 10px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimed </Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" color={'textDisabledButton'} />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(userBill?.yieldData?.claimed, 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimedUSD)})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n gap: ['10px', '10px', '10px', '15px'],\n height: '40px',\n }}\n >\n <Button\n sx={{ width: '65%' }}\n disabled={!saleFinalized || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={() => {\n if (chainId !== userBill?.chainId) {\n switchChainAsync({ chainId: userBill?.chainId! })\n .then(() => {\n handleClick()\n })\n .catch()\n } else {\n handleClick()\n }\n }}\n >\n {canRedeem\n ? 'Activate yield'\n : hasRedeemed\n ? 'Claim rewards'\n : `Claimable ${endTimeFinished && !saleFinalized ? 'soon' : `in ${redeemableInShort}`}`}\n </Button>\n <Button\n sx={{ width: '34%' }}\n disabled={!saleFinalized || !hasRedeemed}\n variant=\"secondary\"\n onClick={onOpenUnstakeModal}\n >\n Unstake\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModalYield\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ const UnstakeModalYield = ({ userBill, onSuccessFullTx, onDismiss, }) => {
|
|
|
64
64
|
overflowY: 'unset !important',
|
|
65
65
|
background: 'white2',
|
|
66
66
|
top: '56%',
|
|
67
|
-
}, title: 'Confirm Unstake', onDismiss: onDismiss, children: jsxs(Flex, { sx: { width: '100%', flexDirection: 'column' }, children: [jsx(Flex, { sx: { fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }, children: "Are you sure you want to unstake?" }), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 400, mt: '10px' }, children: `You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).` }), jsxs(Flex, { sx: { width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }, children: [jsx(Checkbox, { checked: acknowledge, onChange: () => setAcknowledge(!acknowledge), sx: { mr: '10px' } }), "I understand and I want to proceed to unstake."] }), jsxs(Flex, { sx: { width: '100%', gap: '10px', mt: '15px' }, children: [jsx(Button, { sx: { width: '100%', fontSize: '14px', height: '35px' }, disabled: !acknowledge || loading || isLoadingOnChain, load: loading, onClick: handleUnstake, children: "Unstake" }), jsx(Button, { variant: "secondary", sx: { width: '100%', height: '35px', fontSize: '14px' }, onClick: onDismiss, children: "Cancel" })] })] }) }));
|
|
67
|
+
}, title: 'Confirm Unstake', onDismiss: onDismiss, children: jsxs(Flex, { sx: { width: '100%', flexDirection: 'column' }, children: [jsx(Flex, { sx: { fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }, children: "Are you sure you want to unstake?" }), jsx(Flex, { sx: { fontSize: '14px', fontWeight: 400, mt: '10px' }, children: `You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).` }), jsxs(Flex, { sx: { width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }, children: [jsx(Checkbox, { checked: acknowledge, onChange: () => setAcknowledge(!acknowledge), sx: { mr: '10px' } }), "I understand and I want to proceed to unstake."] }), jsxs(Flex, { sx: { width: '100%', gap: '10px', mt: '15px' }, children: [jsx(Button, { sx: { width: '100%', fontSize: '14px', height: '35px' }, disabled: !acknowledge || loading || isLoadingOnChain, load: loading || isLoadingOnChain, onClick: handleUnstake, children: "Unstake" }), jsx(Button, { variant: "secondary", sx: { width: '100%', height: '35px', fontSize: '14px' }, onClick: onDismiss, children: "Cancel" })] })] }) }));
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
export { UnstakeModalYield as default };
|
package/dist/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnstakeModalYield.js","sources":["../../../../../src/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Vault_Shares_ABI from '../../../../config/abi/Vault_Shares.json'\nimport { useWriteContract } from 'wagmi'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\n\nconst UnstakeModalYield = ({\n userBill,\n onSuccessFullTx,\n onDismiss,\n}: {\n userBill?: PreTGEUserBonds\n onSuccessFullTx?: () => void\n onDismiss?: () => void\n}) => {\n // Hooks\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n // State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [acknowledge, setAcknowledge] = useState(false)\n\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const futureRewards = userBill?.yieldData?.futureRewards ?? 0\n\n const handleUnstake = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'redeem',\n args: [userBill?.yieldData?.vaultTokenBalance, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (isSuccess) {\n onSuccessFullTx?.()\n }\n }, [isSuccess, onSuccessFullTx])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n top: '56%',\n }}\n title={'Confirm Unstake'}\n onDismiss={onDismiss}\n >\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }}>\n Are you sure you want to unstake?\n </Flex>\n <Flex\n sx={{ fontSize: '14px', fontWeight: 400, mt: '10px' }}\n >{`You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).`}</Flex>\n <Flex sx={{ width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }}>\n <Checkbox checked={acknowledge} onChange={() => setAcknowledge(!acknowledge)} sx={{ mr: '10px' }} />I\n understand and I want to proceed to unstake.\n </Flex>\n <Flex sx={{ width: '100%', gap: '10px', mt: '15px' }}>\n <Button\n sx={{ width: '100%', fontSize: '14px', height: '35px' }}\n disabled={!acknowledge || loading || isLoadingOnChain}\n load={loading}\n onClick={handleUnstake}\n >\n Unstake\n </Button>\n <Button variant=\"secondary\" sx={{ width: '100%', height: '35px', fontSize: '14px' }} onClick={onDismiss}>\n Cancel\n </Button>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default UnstakeModalYield\n"],"names":["_jsx","_jsxs"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"UnstakeModalYield.js","sources":["../../../../../src/views/YourBondsModalYield/components/UnstakeModalYield/UnstakeModalYield.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport { PreTGEUserBonds } from '../../../../state/bonds/useUserBondsPreTGE'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Vault_Shares_ABI from '../../../../config/abi/Vault_Shares.json'\nimport { useWriteContract } from 'wagmi'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../../../utils/formatNumber'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\n\nconst UnstakeModalYield = ({\n userBill,\n onSuccessFullTx,\n onDismiss,\n}: {\n userBill?: PreTGEUserBonds\n onSuccessFullTx?: () => void\n onDismiss?: () => void\n}) => {\n // Hooks\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const SDKConfig = useSDKConfig()\n const { addToastError } = usePopups()\n\n // State\n const [loading, setLoading] = useState(false)\n const [hash, setHash] = useState('')\n const [acknowledge, setAcknowledge] = useState(false)\n\n const { isLoading: isLoadingOnChain, isSuccess } = useMonitorTx(hash, userBill?.chainId)\n\n // Static Data\n const futureRewards = userBill?.yieldData?.futureRewards ?? 0\n\n const handleUnstake = async () => {\n setLoading(true)\n setHash('')\n if (!userBill?.userOwnedBillsData?.id) return\n writeContractAsync({\n address: userBill?.earnToken.address[userBill?.chainId] as `0x${string}`,\n abi: Vault_Shares_ABI,\n functionName: 'redeem',\n args: [userBill?.yieldData?.vaultTokenBalance, account, account],\n chain: userBill?.chainId as any,\n account,\n })\n .then((r) => {\n setHash(r)\n })\n .catch((e) => {\n console.error(e.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e.message,\n extraInfo: { type: 'claimLaunchBond', error: e.message },\n chainId: userBill?.chainId,\n account,\n })\n addToastError(e.shortMessage)\n })\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (isSuccess) {\n onSuccessFullTx?.()\n }\n }, [isSuccess, onSuccessFullTx])\n\n return (\n <Modal\n sx={{\n width: '400px',\n overflowY: 'unset !important',\n background: 'white2',\n top: '56%',\n }}\n title={'Confirm Unstake'}\n onDismiss={onDismiss}\n >\n <Flex sx={{ width: '100%', flexDirection: 'column' }}>\n <Flex sx={{ fontSize: ['16px', '16px', '16px', '20px'], fontWeight: [600, 600, 600, 700] }}>\n Are you sure you want to unstake?\n </Flex>\n <Flex\n sx={{ fontSize: '14px', fontWeight: 400, mt: '10px' }}\n >{`You'll lose the rewards that have not been accrued yet (${formatNumberSI(futureRewards)} ${userBill?.underlyingEarnToken?.symbol}).`}</Flex>\n <Flex sx={{ width: '100%', mt: '15px', fontWeight: 400, fontSize: '14px', alignItems: 'center' }}>\n <Checkbox checked={acknowledge} onChange={() => setAcknowledge(!acknowledge)} sx={{ mr: '10px' }} />I\n understand and I want to proceed to unstake.\n </Flex>\n <Flex sx={{ width: '100%', gap: '10px', mt: '15px' }}>\n <Button\n sx={{ width: '100%', fontSize: '14px', height: '35px' }}\n disabled={!acknowledge || loading || isLoadingOnChain}\n load={loading || isLoadingOnChain}\n onClick={handleUnstake}\n >\n Unstake\n </Button>\n <Button variant=\"secondary\" sx={{ width: '100%', height: '35px', fontSize: '14px' }} onClick={onDismiss}>\n Cancel\n </Button>\n </Flex>\n </Flex>\n </Modal>\n )\n}\n\nexport default UnstakeModalYield\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|