fixup recent trades decimals
This commit is contained in:
parent
69304a2457
commit
ef144b672f
|
@ -21,7 +21,6 @@ import {
|
|||
BookSideType,
|
||||
MangoClient,
|
||||
PerpMarket,
|
||||
Serum3Market,
|
||||
} from '@blockworks-foundation/mango-v4'
|
||||
import useSelectedMarket from 'hooks/useSelectedMarket'
|
||||
|
||||
|
@ -175,7 +174,7 @@ const depth = 40
|
|||
|
||||
const Orderbook = () => {
|
||||
const { t } = useTranslation(['common', 'trade'])
|
||||
const { selectedMarket } = useSelectedMarket()
|
||||
const { selectedMarket, serumOrPerpMarket: market } = useSelectedMarket()
|
||||
|
||||
const [isScrolled, setIsScrolled] = useState(false)
|
||||
const [orderbookData, setOrderbookData] = useState<any | null>(null)
|
||||
|
@ -196,17 +195,6 @@ const Orderbook = () => {
|
|||
return Array(bookDepth).fill(0)
|
||||
}, [isMobile])
|
||||
|
||||
const market = useMemo(() => {
|
||||
const group = mangoStore.getState().group
|
||||
if (!group || !selectedMarket) return
|
||||
|
||||
if (selectedMarket instanceof Serum3Market) {
|
||||
return group?.getSerum3ExternalMarket(selectedMarket.serumMarketExternal)
|
||||
} else {
|
||||
return selectedMarket
|
||||
}
|
||||
}, [selectedMarket])
|
||||
|
||||
useEffect(() => {
|
||||
if (!market) return
|
||||
setGrouping(market.tickSize)
|
||||
|
|
|
@ -1,32 +1,19 @@
|
|||
import useInterval from '@components/shared/useInterval'
|
||||
import mangoStore from '@store/mangoStore'
|
||||
import { useMemo } from 'react'
|
||||
import { useEffect, useMemo } from 'react'
|
||||
// import isEqual from 'lodash/isEqual'
|
||||
import { floorToDecimal, getDecimalCount } from 'utils/numbers'
|
||||
import Decimal from 'decimal.js'
|
||||
import { ChartTradeType } from 'types'
|
||||
import { useTranslation } from 'next-i18next'
|
||||
import { Serum3Market } from '@blockworks-foundation/mango-v4'
|
||||
import useSelectedMarket from 'hooks/useSelectedMarket'
|
||||
|
||||
const RecentTrades = () => {
|
||||
const { t } = useTranslation(['common', 'trade'])
|
||||
// const [trades, setTrades] = useState<any[]>([])
|
||||
const { t } = useTranslation(['common', 'trade'])
|
||||
const fills = mangoStore((s) => s.selectedMarket.fills)
|
||||
console.log('fills', fills)
|
||||
|
||||
const { selectedMarket } = useSelectedMarket()
|
||||
|
||||
const market = useMemo(() => {
|
||||
const group = mangoStore.getState().group
|
||||
if (!group || !selectedMarket) return
|
||||
|
||||
if (selectedMarket instanceof Serum3Market) {
|
||||
return group?.getSerum3ExternalMarket(selectedMarket.serumMarketExternal)
|
||||
} else {
|
||||
return selectedMarket
|
||||
}
|
||||
}, [selectedMarket])
|
||||
const { selectedMarket, serumOrPerpMarket: market } = useSelectedMarket()
|
||||
|
||||
const baseSymbol = useMemo(() => {
|
||||
return selectedMarket?.name.split('/')[0]
|
||||
|
@ -57,11 +44,13 @@ const RecentTrades = () => {
|
|||
// }
|
||||
// }, [market, trades])
|
||||
|
||||
// useEffect(() => {
|
||||
// if (CLUSTER === 'mainnet-beta') {
|
||||
// fetchRecentTrades()
|
||||
// }
|
||||
// }, [fetchRecentTrades])
|
||||
useEffect(() => {
|
||||
// if (CLUSTER === 'mainnet-beta') {
|
||||
// fetchRecentTrades()
|
||||
// }
|
||||
const actions = mangoStore.getState().actions
|
||||
actions.loadMarketFills()
|
||||
}, [selectedMarket])
|
||||
|
||||
useInterval(async () => {
|
||||
// if (CLUSTER === 'mainnet-beta') {
|
||||
|
@ -88,16 +77,31 @@ const RecentTrades = () => {
|
|||
<tbody>
|
||||
{!!fills.length &&
|
||||
fills.map((trade: ChartTradeType, i: number) => {
|
||||
console.log(
|
||||
'price: ',
|
||||
trade.price,
|
||||
' size: ',
|
||||
trade.size,
|
||||
trade.quantity
|
||||
)
|
||||
|
||||
// const price =
|
||||
typeof trade.price === 'number'
|
||||
? trade.price
|
||||
: trade.price.toNumber()
|
||||
const formattedPrice = market?.tickSize
|
||||
? floorToDecimal(trade.price, getDecimalCount(market.tickSize))
|
||||
: new Decimal(trade?.price || 0)
|
||||
|
||||
const formattedSize = market?.minOrderSize
|
||||
? floorToDecimal(
|
||||
trade.size,
|
||||
getDecimalCount(market.minOrderSize)
|
||||
)
|
||||
: new Decimal(trade?.size || 0)
|
||||
// const size = trade?.quantity?.toNumber() || trade?.size
|
||||
const formattedSize =
|
||||
market?.minOrderSize && trade.size
|
||||
? floorToDecimal(
|
||||
trade.size,
|
||||
getDecimalCount(market.minOrderSize)
|
||||
)
|
||||
: new Decimal(trade.size || 0)
|
||||
|
||||
return (
|
||||
<tr className="font-mono text-xs" key={i}>
|
||||
<td
|
||||
|
|
|
@ -20,10 +20,16 @@ export default function useSelectedMarket() {
|
|||
} else return 0
|
||||
}, [selectedMarket, group])
|
||||
|
||||
const serumOrPerpMarket =
|
||||
selectedMarket instanceof Serum3Market
|
||||
? group?.getSerum3ExternalMarket(selectedMarket.serumMarketExternal)
|
||||
: selectedMarket
|
||||
const serumOrPerpMarket = useMemo(() => {
|
||||
const group = mangoStore.getState().group
|
||||
if (!group || !selectedMarket) return
|
||||
|
||||
if (selectedMarket instanceof Serum3Market) {
|
||||
return group?.getSerum3ExternalMarket(selectedMarket.serumMarketExternal)
|
||||
} else {
|
||||
return selectedMarket
|
||||
}
|
||||
}, [selectedMarket])
|
||||
|
||||
return { selectedMarket, price, serumOrPerpMarket }
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
export interface ChartTradeType {
|
||||
market: string
|
||||
size: number
|
||||
price: number
|
||||
quantity: number | any
|
||||
price: number | any
|
||||
orderId: string
|
||||
time: number
|
||||
side: string
|
||||
|
|
|
@ -29,9 +29,7 @@ export const floorToDecimal = (
|
|||
value: number | string | Decimal,
|
||||
decimals: number
|
||||
): Decimal => {
|
||||
const decimal: Decimal = !(value instanceof Decimal)
|
||||
? new Decimal(value)
|
||||
: value
|
||||
const decimal = value instanceof Decimal ? value : new Decimal(value)
|
||||
|
||||
return decimal.toDecimalPlaces(decimals, Decimal.ROUND_DOWN)
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
"@blockworks-foundation/mango-v4@https://tylersssss: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@github.com/blockworks-foundation/mango-v4.git#main":
|
||||
version "0.0.1-beta.6"
|
||||
resolved "https://tylersssss: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@github.com/blockworks-foundation/mango-v4.git#80809c640406ea79ebd286b284b89f63803b16bf"
|
||||
resolved "https://tylersssss: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@github.com/blockworks-foundation/mango-v4.git#256b948207fe82d58cce7790190d50347f3c81df"
|
||||
dependencies:
|
||||
"@project-serum/anchor" "^0.25.0"
|
||||
"@project-serum/serum" "^0.13.65"
|
||||
|
|
Loading…
Reference in New Issue