mars-v2-frontend/src/utils/parsers.ts
Bob van der Helm d2afe06b16
Mp 3367 staking interactions (#613)
* ♻️ Refactor borrowRate to be in full numbers

* Enter into HLS Staking strategy

* HLS Staking deposited table + Portfolio pages

* tidy: refactored the masks for HealthBar

---------

Co-authored-by: Linkie Link <linkielink.dev@gmail.com>
2023-11-03 15:01:15 +01:00

40 lines
1.1 KiB
TypeScript

import { BNCoin } from 'types/classes/BNCoin'
import { BN } from 'utils/helpers'
export function isNumber(value: unknown) {
if (typeof value === 'string' && value !== '') {
return !isNaN(Number(value))
}
return typeof value === 'number'
}
export const convertAprToApy = (apr: number, numberOfCompoundingPeriods: number): number => {
return ((1 + apr / 100 / numberOfCompoundingPeriods) ** numberOfCompoundingPeriods - 1) * 100
}
export const convertApyToApr = (apy: number, numberOfCompoundingPeriods: number): number => {
const periodicRate = (1 + apy / 100) ** (1 / numberOfCompoundingPeriods) - 1
return periodicRate * numberOfCompoundingPeriods * 100
}
export const combineBNCoins = (coins: BNCoin[]): BNCoin[] => {
const combinedMap: { [key: string]: number } = {}
coins.forEach((coin) => {
if (combinedMap.hasOwnProperty(coin.denom)) {
combinedMap[coin.denom] += coin.amount.toNumber()
} else {
combinedMap[coin.denom] = coin.amount.toNumber()
}
})
return Object.keys(combinedMap).map(
(denom) =>
new BNCoin({
denom,
amount: BN(combinedMap[denom]).toString(),
}),
)
}