try catch rates
This commit is contained in:
parent
83b07af3c3
commit
0ae13e99b2
|
@ -8,38 +8,49 @@ import {
|
|||
} from '@glitchful-dev/sol-apy-sdk'
|
||||
|
||||
const fetchRates = async () => {
|
||||
const [msolPrices, jitoPrices, bsolPrices, lidoPrices] = await Promise.all([
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.MARINADE_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.JITO_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.SOLBLAZE_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.LIDO_CSV),
|
||||
])
|
||||
try {
|
||||
const [msolPrices, jitoPrices, bsolPrices, lidoPrices] = await Promise.all([
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.MARINADE_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.JITO_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.SOLBLAZE_CSV),
|
||||
fetchAndParsePricesCsv(DATA_SOURCE.LIDO_CSV),
|
||||
])
|
||||
|
||||
const jlpPricesData = await (await fetch(`https://api.coingecko.com/api/v3/coins/jupiter-perpetuals-liquidity-provider-token/market_chart?vs_currency=usd&days=30&interval=daily`)).json();
|
||||
const jlpPricesPrice = jlpPricesData.prices.map((priceAndTime: Array<Number>) => priceAndTime[1])
|
||||
const resp = await fetch(
|
||||
`https://api.coingeckos.com/api/v3/coins/jupiter-perpetuals-liquidity-provider-token/market_chart?vs_currency=usd&days=30&interval=daily`,
|
||||
)
|
||||
const jlpPricesData = await resp.json()
|
||||
const jlpPricesPrice = jlpPricesData.prices.map(
|
||||
(priceAndTime: Array<number>) => priceAndTime[1],
|
||||
)
|
||||
|
||||
// may be null if the price range cannot be calculated
|
||||
const msolRange = getPriceRangeFromPeriod(msolPrices, PERIOD.DAYS_30)
|
||||
const jitoRange = getPriceRangeFromPeriod(jitoPrices, PERIOD.DAYS_30)
|
||||
const bsolRange = getPriceRangeFromPeriod(bsolPrices, PERIOD.DAYS_30)
|
||||
const lidoRange = getPriceRangeFromPeriod(lidoPrices, PERIOD.DAYS_30)
|
||||
// may be null if the price range cannot be calculated
|
||||
const msolRange = getPriceRangeFromPeriod(msolPrices, PERIOD.DAYS_30)
|
||||
const jitoRange = getPriceRangeFromPeriod(jitoPrices, PERIOD.DAYS_30)
|
||||
const bsolRange = getPriceRangeFromPeriod(bsolPrices, PERIOD.DAYS_30)
|
||||
const lidoRange = getPriceRangeFromPeriod(lidoPrices, PERIOD.DAYS_30)
|
||||
|
||||
const rateData: Record<string, number> = {}
|
||||
rateData.jlp = 12 * (jlpPricesPrice[jlpPricesPrice.length - 2] - jlpPricesPrice[1]) / jlpPricesPrice[1]
|
||||
const rateData: Record<string, number> = {}
|
||||
rateData.jlp =
|
||||
(12 * (jlpPricesPrice[jlpPricesPrice.length - 2] - jlpPricesPrice[1])) /
|
||||
jlpPricesPrice[1]
|
||||
|
||||
if (msolRange) {
|
||||
rateData.msol = calcYield(msolRange)?.apy
|
||||
if (msolRange) {
|
||||
rateData.msol = calcYield(msolRange)?.apy
|
||||
}
|
||||
if (jitoRange) {
|
||||
rateData.jitosol = calcYield(jitoRange)?.apy
|
||||
}
|
||||
if (bsolRange) {
|
||||
rateData.bsol = calcYield(bsolRange)?.apy
|
||||
}
|
||||
if (lidoRange) {
|
||||
rateData.stsol = calcYield(lidoRange)?.apy
|
||||
}
|
||||
return rateData
|
||||
} catch (e) {
|
||||
return {}
|
||||
}
|
||||
if (jitoRange) {
|
||||
rateData.jitosol = calcYield(jitoRange)?.apy
|
||||
}
|
||||
if (bsolRange) {
|
||||
rateData.bsol = calcYield(bsolRange)?.apy
|
||||
}
|
||||
if (lidoRange) {
|
||||
rateData.stsol = calcYield(lidoRange)?.apy
|
||||
}
|
||||
return rateData
|
||||
}
|
||||
|
||||
export default function useStakeRates() {
|
||||
|
|
Loading…
Reference in New Issue