config#PIZZA_POOL_PID TypeScript Examples
The following examples show how to use
config#PIZZA_POOL_PID.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: EarnAPYCard.tsx From frontend-ui with GNU General Public License v3.0 | 5 votes |
EarnAPYCard = () => {
const TranslateString = useI18n()
const farmsLP = useFarms()
const bnbPrice = usePriceBnbBusd()
const maxAPY = useRef(Number.MIN_VALUE)
const getHighestAPY = () => {
const activeFarms = farmsLP.filter((farm) => farm.pid !== 0 && farm.multiplier !== '0X')
calculateAPY(activeFarms)
return (maxAPY.current * 100).toLocaleString('en-US').slice(0, -1)
}
const calculateAPY = useCallback(
(farmsToDisplay) => {
const pizzaPriceVsBNB = new BigNumber(farmsLP.find((farm) => farm.pid === PIZZA_POOL_PID)?.tokenPriceVsQuote || 0)
farmsToDisplay.map((farm) => {
if (!farm.tokenAmount || !farm.lpTotalInQuoteToken || !farm.lpTotalInQuoteToken) {
return farm
}
const pizzaRewardPerBlock = PIZZA_PER_BLOCK.times(farm.poolWeight)
const pizzaRewardPerYear = pizzaRewardPerBlock.times(BLOCKS_PER_YEAR)
let apy = pizzaPriceVsBNB.times(pizzaRewardPerYear).div(farm.lpTotalInQuoteToken)
if (farm.quoteTokenSymbol === QuoteToken.BUSD) {
apy = pizzaPriceVsBNB.times(pizzaRewardPerYear).div(farm.lpTotalInQuoteToken).times(bnbPrice)
} else if (farm.quoteTokenSymbol === QuoteToken.PIZZA) {
apy = pizzaRewardPerYear.div(farm.lpTotalInQuoteToken)
} else if (farm.dual) {
const pizzaApy =
farm && pizzaPriceVsBNB.times(pizzaRewardPerBlock).times(BLOCKS_PER_YEAR).div(farm.lpTotalInQuoteToken)
const dualApy =
farm.tokenPriceVsQuote &&
new BigNumber(farm.tokenPriceVsQuote)
.times(farm.dual.rewardPerBlock)
.times(BLOCKS_PER_YEAR)
.div(farm.lpTotalInQuoteToken)
apy = pizzaApy && dualApy && pizzaApy.plus(dualApy)
}
if (maxAPY.current < apy.toNumber()) maxAPY.current = apy.toNumber()
return apy
})
},
[bnbPrice, farmsLP],
)
return (
<StyledFarmStakingCard>
<CardBody>
<Heading color="contrast" size="lg">
Earn up to
</Heading>
<CardMidContent color="#EF4E7B">
{getHighestAPY() ? (
`${getHighestAPY()}% ${TranslateString(736, 'APY')}`
) : (
<Skeleton animation="pulse" variant="rect" height="44px" />
)}
</CardMidContent>
<Flex justifyContent="space-between">
<Heading color="contrast" size="lg">
in Farms
</Heading>
<NavLink exact activeClassName="active" to="/farms">
<ArrowForwardIcon mt={30} color="primary" />
</NavLink>
</Flex>
</CardBody>
</StyledFarmStakingCard>
)
}
Example #2
Source File: Farms.tsx From frontend-ui with GNU General Public License v3.0 | 4 votes |
Farms: React.FC = () => {
const { path } = useRouteMatch()
const TranslateString = useI18n()
const farmsLP = useFarms()
const pizzaPrice = usePricePizzaBusd()
const bnbPrice = usePriceBnbBusd()
const { account, ethereum }: { account: string; ethereum: provider } = useWallet()
const dispatch = useDispatch()
const { fastRefresh } = useRefresh()
useEffect(() => {
if (account) {
dispatch(fetchFarmUserDataAsync(account))
}
}, [account, dispatch, fastRefresh])
const activeFarms = farmsLP.filter((farm) => farm.pid !== 0 && farm.multiplier !== '0X')
const inactiveFarms = farmsLP.filter((farm) => farm.pid !== 0 && farm.multiplier === '0X')
// /!\ This function will be removed soon
// This function compute the APY for each farm and will be replaced when we have a reliable API
// to retrieve assets prices against USD
const farmsList = useCallback(
(farmsToDisplay, removed: boolean) => {
const pizzaPriceVsBNB = new BigNumber(farmsLP.find((farm) => farm.pid === PIZZA_POOL_PID)?.tokenPriceVsQuote || 0)
const farmsToDisplayWithAPY: FarmWithStakedValue[] = farmsToDisplay.map((farm) => {
if (!farm.tokenAmount || !farm.lpTotalInQuoteToken || !farm.lpTotalInQuoteToken) {
return farm
}
const pizzaRewardPerBlock = PIZZA_PER_BLOCK.times(farm.poolWeight)
const pizzaRewardPerYear = pizzaRewardPerBlock.times(BLOCKS_PER_YEAR)
let apy = pizzaPriceVsBNB.times(pizzaRewardPerYear).div(farm.lpTotalInQuoteToken)
if (farm.quoteTokenSymbol === QuoteToken.USDT || farm.quoteTokenSymbol === QuoteToken.USDC) {
apy = pizzaPriceVsBNB.times(pizzaRewardPerYear).div(farm.lpTotalInQuoteToken).times(bnbPrice)
} else if (farm.quoteTokenSymbol === QuoteToken.PIZZA) {
apy = pizzaRewardPerYear.div(farm.lpTotalInQuoteToken)
} else if (farm.dual) {
const pizzaApy =
farm && pizzaPriceVsBNB.times(pizzaRewardPerBlock).times(BLOCKS_PER_YEAR).div(farm.lpTotalInQuoteToken)
const dualApy =
farm.tokenPriceVsQuote &&
new BigNumber(farm.tokenPriceVsQuote)
.times(farm.dual.rewardPerBlock)
.times(BLOCKS_PER_YEAR)
.div(farm.lpTotalInQuoteToken)
apy = pizzaApy && dualApy && pizzaApy.plus(dualApy)
}
return { ...farm, apy }
})
return farmsToDisplayWithAPY.map((farm) => (
<FarmCard
key={farm.pid}
farm={farm}
removed={removed}
bnbPrice={bnbPrice}
pizzaPrice={pizzaPrice}
ethereum={ethereum}
account={account}
/>
))
},
[bnbPrice, farmsLP, account, pizzaPrice, ethereum],
)
return (
<Page>
<Heading as="h1" size="lg" color="secondary" mb="50px" style={{ textAlign: 'center' }}>
{TranslateString(999, 'Stake Cheese-LP tokens to earn PIZZA')}
</Heading>
<Heading as="h3" size="lg" color="secondary" mb="50px" style={{ textAlign: 'center' }}>
{TranslateString(999, 'CAUTION!: FARMS CALCULATED "APY" DATA IS REAL TIME AND AUTOMATICALLY COLLECTED FROM BLOCKCHAIN. DATA MAY NOT BE ACCURATE.')}
</Heading>
<FarmTabButtons />
<div>
<Divider />
<FlexLayout>
<Route exact path={`${path}`}>
{farmsList(activeFarms, false)}
</Route>
<Route exact path={`${path}/history`}>
{farmsList(inactiveFarms, true)}
</Route>
</FlexLayout>
</div>
<Image src="/images/farm-bg.svg" alt="PizzaFinance illustration" width={1080} height={600} responsive />
</Page>
)
}