mango-v4-ui/hooks/useOraclePrice.ts

25 lines
791 B
TypeScript

import { Serum3Market } from '@blockworks-foundation/mango-v4'
import { getDecimalCount } from 'utils/numbers'
import useMangoGroup from './useMangoGroup'
import useSelectedMarket from './useSelectedMarket'
export default function useOraclePrice() {
const { group } = useMangoGroup()
const { selectedMarket } = useSelectedMarket()
if (!group || !selectedMarket) return false
let price
let market
if (selectedMarket instanceof Serum3Market) {
price = group.getFirstBankByTokenIndex(
selectedMarket?.baseTokenIndex
).uiPrice
market = group.getSerum3ExternalMarket(selectedMarket.serumMarketExternal)
} else {
price = selectedMarket.uiPrice
market = selectedMarket
}
return price && market ? price.toFixed(getDecimalCount(market.tickSize)) : ''
}