Skip to content

Commit 0916198

Browse files
authored
feat: Feat/ifo listapie (#11149)
<!-- Before opening a pull request, please read the [contributing guidelines](https://github.com/pancakeswap/pancake-frontend/blob/develop/CONTRIBUTING.md) first --> <!-- start pr-codex --> --- ## PR-Codex overview This PR introduces the `Listapie` campaign and related components, replacing references to `SOLV` with `Listapie` across various files. It adds a new token launch and modifies UI components to reflect the changes. ### Detailed summary - Added `Listapie` campaign to `campaigns.ts`. - Updated `ERC20Token` details for `Listapie` in `constants/bsc.ts`. - Created `AdListaPie` component in `Ads/AdListapie.tsx`. - Replaced `AdSolv` with `AdListaPie` in `AdPanel/config.tsx`. - Updated `PhishingWarningBanner` to include `ListapieStripe`. - Modified translation strings in `translations.json`. - Added new `ifos` entry for `Listapie` in `ifos/bsc.ts`. - Updated `SolvStrip` to `ListapieStripe` in `PhishingWarningBanner`. > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` <!-- end pr-codex -->
1 parent 6110fae commit 0916198

File tree

10 files changed

+149
-33
lines changed

10 files changed

+149
-33
lines changed

Diff for: apps/web/src/components/AdPanel/Ads/AdListapie.tsx

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { useTranslation } from '@pancakeswap/localization'
2+
import { BodyText } from '../BodyText'
3+
import { AdButton } from '../Button'
4+
import { AdCard } from '../Card'
5+
import { Countdown } from '../Countdown'
6+
import { AdPlayerProps } from '../types'
7+
import { getImageUrl } from '../utils'
8+
9+
export const AdListaPie = (props: AdPlayerProps) => {
10+
const { t } = useTranslation()
11+
12+
return (
13+
<AdCard imageUrl={getImageUrl('listapie')} {...props}>
14+
<BodyText mb="8px">
15+
{t('%token% IFO starts in', {
16+
token: 'Listapie',
17+
})}
18+
</BodyText>
19+
20+
<Countdown
21+
targetTime={new Date('2025-01-21T10:00:00Z').getTime() / 1000}
22+
subtleColor="rgba(0,0,0,.6)"
23+
background="linear-gradient(180deg, #FCC631 0%, #FF9D00 100%)"
24+
color="black"
25+
mb="8px"
26+
/>
27+
28+
<AdButton variant="text" isExternalLink href="https://pancakeswap.finance/ifo">
29+
{t('Get Started')}
30+
</AdButton>
31+
</AdCard>
32+
)
33+
}

Diff for: apps/web/src/components/AdPanel/config.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useMatchBreakpoints } from '@pancakeswap/uikit'
22
import { useMemo } from 'react'
33
import { AdCakeStaking } from './Ads/AdCakeStaking'
4+
import { AdListaPie } from './Ads/AdListapie'
45
import { AdPCSX } from './Ads/AdPCSX'
5-
import { AdSolv } from './Ads/AdSolv'
66
import { AdSpringboard } from './Ads/AdSpringboard'
77
import { AdTradingCompetitionVinu } from './Ads/AdTradingCompetition'
88
import { ExpandableAd } from './Expandable/ExpandableAd'
@@ -44,8 +44,8 @@ export const useAdConfig = () => {
4444
component: <AdTradingCompetitionVinu />,
4545
},
4646
{
47-
id: 'ad-ifo-solv',
48-
component: <AdSolv />,
47+
id: 'ad-ifo-listapie',
48+
component: <AdListaPie />,
4949
},
5050
{
5151
id: 'pcsx',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { useTranslation } from '@pancakeswap/localization'
2+
import { Box, Link } from '@pancakeswap/uikit'
3+
import { VerticalDivider } from '@pancakeswap/widgets-internal'
4+
import { TextHighlight } from './TextHighlight'
5+
6+
export const ListapieStripe = () => {
7+
const { t } = useTranslation()
8+
9+
return (
10+
<Box mr={['6px']}>
11+
<TextHighlight
12+
text={t('Join the %token% Token Launch (IFO) on BNB Chain PancakeSwap', {
13+
token: 'Listapie',
14+
})}
15+
highlights={['Listapie', 'PancakeSwap']}
16+
/>{' '}
17+
<Link
18+
external
19+
display="inline !important"
20+
fontSize={['12px', '12px', '14px']}
21+
href="https://pancakeswap.finance/ifo"
22+
>
23+
{t('Join Now')}
24+
</Link>
25+
<VerticalDivider
26+
bg="#53DEE9"
27+
style={{
28+
display: 'inline-block',
29+
verticalAlign: 'middle',
30+
height: '18px',
31+
opacity: 0.4,
32+
width: '1px',
33+
marginLeft: '0px',
34+
marginRight: '8px',
35+
}}
36+
/>
37+
<Link
38+
external
39+
display="inline !important"
40+
fontSize={['12px', '12px', '14px']}
41+
href="https://pancakeswap.finance/ifo"
42+
>
43+
{t('Learn More')}
44+
</Link>
45+
</Box>
46+
)
47+
}

Diff for: apps/web/src/components/PhishingWarningBanner/SolvStrip.tsx

+5-20
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,17 @@
11
import { useTranslation } from '@pancakeswap/localization'
2-
import { Box, Link, Text } from '@pancakeswap/uikit'
2+
import { Box, Link } from '@pancakeswap/uikit'
33
import { VerticalDivider } from '@pancakeswap/widgets-internal'
4+
import { TextHighlight } from './TextHighlight'
45

5-
const TextHighlight = ({ text, highlights }: { text: string; highlights: string[] }) => {
6-
const prts = text.split(new RegExp(`(${highlights.join('|')})`, 'g'))
7-
return prts.map((prt, i) => {
8-
const key = `${prt}-${i}`
9-
if (highlights.includes(prt)) {
10-
return (
11-
<Text bold as="span" color="#FCC631" fontSize={['12px', '12px', '14px']} key={key}>
12-
{prt}
13-
</Text>
14-
)
15-
}
16-
return (
17-
<Text bold as="span" color="#FFFFFF" fontSize={['12px', '12px', '14px']} key={key}>
18-
{prt}
19-
</Text>
20-
)
21-
})
22-
}
236
export const SolvStrip = () => {
247
const { t } = useTranslation()
258

269
return (
2710
<Box mr={['6px']}>
2811
<TextHighlight
29-
text={t('Join the SOLV Token Launch (IFO) on BNB Chain PancakeSwap')}
12+
text={t('Join the %token% Token Launch (IFO) on BNB Chain PancakeSwap', {
13+
token: 'SOLV',
14+
})}
3015
highlights={['SOLV', 'PancakeSwap']}
3116
/>{' '}
3217
<Link
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Text } from '@pancakeswap/uikit'
2+
3+
export const TextHighlight = ({ text, highlights }: { text: string; highlights: string[] }) => {
4+
const prts = text.split(new RegExp(`(${highlights.join('|')})`, 'g'))
5+
return prts.map((prt, i) => {
6+
const key = `${prt}-${i}`
7+
if (highlights.includes(prt)) {
8+
return (
9+
<Text bold as="span" color="#FCC631" fontSize={['12px', '12px', '14px']} key={key}>
10+
{prt}
11+
</Text>
12+
)
13+
}
14+
return (
15+
<Text bold as="span" color="#FFFFFF" fontSize={['12px', '12px', '14px']} key={key}>
16+
{prt}
17+
</Text>
18+
)
19+
})
20+
}

Diff for: apps/web/src/components/PhishingWarningBanner/index.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'swiper/css/effect-fade'
88
import { ASSET_CDN } from 'config/constants/endpoints'
99
import { Countdown } from './Countdown'
1010

11-
import { SolvStrip } from './SolvStrip'
11+
import { ListapieStripe } from './ListapieStripe'
1212
import { Step1 } from './Step1'
1313
import { Step2 } from './Step2'
1414
import { Step3 } from './Step3'
@@ -101,10 +101,10 @@ type BannerConfig = {
101101

102102
const CONFIG: BannerConfig[] = [
103103
{
104-
component: SolvStrip,
105-
stripeImage: `${ASSET_CDN}/web/phishing-warning/solv.png?v=1`,
104+
component: ListapieStripe,
105+
stripeImage: `${ASSET_CDN}/web/phishing-warning/listapie.png`,
106106
stripeImageWidth: '92px',
107-
stripeImageAlt: 'SOLV IFO',
107+
stripeImageAlt: 'Listapie IFO',
108108
},
109109
{
110110
component: Step1,

Diff for: packages/achievements/src/campaigns.ts

+6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ import { Campaign } from './types'
1010
*/
1111

1212
export const campaigns: Campaign[] = [
13+
{
14+
id: '512700000',
15+
type: 'ifo',
16+
title: 'LISTAPIE',
17+
badge: 'ifo-listapie.svg',
18+
},
1319
{
1420
id: '512600000',
1521
type: 'ifo',

Diff for: packages/ifos/src/constants/ifos/bsc.ts

+26-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,35 @@ import { BaseIfoConfig } from '../../types'
44
import { cakeBnbLpToken } from '../lpTokens'
55

66
export const ifos: BaseIfoConfig[] = [
7+
{
8+
id: 'listapie',
9+
address: '0x4F045CD0C3293845e0A0460fA64caC5d59b4Dc37',
10+
isActive: true,
11+
cIFO: false,
12+
plannedStartTime: new Date('2025-01-21T10:00:00Z').getTime() / 1000,
13+
poolBasic: {
14+
raiseAmount: '$30,000',
15+
},
16+
poolUnlimited: {
17+
raiseAmount: '$270,000',
18+
additionalClaimingFee: true,
19+
},
20+
name: 'LISTAPIE',
21+
currency: bscTokens.cake,
22+
token: bscTokens.listapie,
23+
campaignId: '512700000',
24+
articleUrl: 'https://pancakeswap.finance/ifo',
25+
tokenOfferingPrice: 1,
26+
version: 8,
27+
twitterUrl: 'https://x.com/Listapiexyz_io',
28+
description:
29+
"Listapie's mission is to lock LISTA tokens to obtain voting rights and active engagement rewards within Lista DAO",
30+
vestingTitle: 'LTP is the governance and reward-earning token of Listapie',
31+
},
732
{
833
id: 'solv',
934
address: '0xe1C5dc4d2f63B39c611A9D75C23dbC85d9146E46',
10-
isActive: true,
35+
isActive: false,
1136
cIFO: false,
1237
plannedStartTime: new Date('2025-01-16T10:00:00Z').getTime() / 1000,
1338
poolBasic: {

Diff for: packages/localization/src/config/translations.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3679,7 +3679,7 @@
36793679
"Please provide valid choices": "Please provide valid choices",
36803680
"The vested tokens will be released linearly over a period of %countdown%.": "The vested tokens will be released linearly over a period of %countdown%.",
36813681
"%token% IFO starts in": "%token% IFO starts in",
3682-
"Join the SOLV Token Launch (IFO) on BNB Chain PancakeSwap": "Join the SOLV Token Launch (IFO) on BNB Chain PancakeSwap",
3682+
"Join the %token% Token Launch (IFO) on BNB Chain PancakeSwap": "Join the %token% Token Launch (IFO) on BNB Chain PancakeSwap",
36833683
"The time has already passed.": "The time has already passed.",
36843684
"day(s)": "day(s)",
36853685
"hour(s)": "hour(s)",

Diff for: packages/tokens/src/constants/bsc.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -3343,11 +3343,11 @@ export const bscTokens = {
33433343
),
33443344
listapie: new ERC20Token(
33453345
ChainId.BSC,
3346-
'0xFceB31A79F71AC9CBDCF853519c1b12D379EdC46',
3346+
'0x56fA5F7BF457454Be33D8B978C86A5f5B9DD84C2',
33473347
18,
3348-
'LISTA-PIE',
3349-
'Lista Pie',
3350-
'https://lista.org/',
3348+
'LTP',
3349+
'Listapie',
3350+
'https://www.lista.magpiexyz.io/',
33513351
),
33523352
solv: new ERC20Token(
33533353
ChainId.BSC,

0 commit comments

Comments
 (0)