fix trade history when swapping mango accounts
This commit is contained in:
parent
a95df1b248
commit
3f431676ef
|
@ -54,7 +54,6 @@ const parsedPerpEvent = (mangoAccountAddress: string, event: any) => {
|
|||
value,
|
||||
feeCost: (feeRate.toNumber() * value).toFixed(4),
|
||||
side,
|
||||
marketName: event.marketName,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +70,6 @@ const parsedSerumEvent = (event: any) => {
|
|||
key: `${event.maker}-${event.price}`,
|
||||
value: event.price * event.size,
|
||||
side: event.side,
|
||||
marketName: event.marketName,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,20 +127,17 @@ const TradeHistory = () => {
|
|||
const eventQueueFillsForAccount = useMemo(() => {
|
||||
if (!mangoAccountAddress || !selectedMarket) return []
|
||||
|
||||
const mangoAccountFills = fills
|
||||
.filter((fill: any) => {
|
||||
if (fill.openOrders) {
|
||||
// handles serum event queue for spot trades
|
||||
return openOrderOwner ? fill.openOrders.equals(openOrderOwner) : false
|
||||
} else {
|
||||
// handles mango event queue for perp trades
|
||||
return (
|
||||
fill.taker.equals(openOrderOwner) ||
|
||||
fill.maker.equals(openOrderOwner)
|
||||
)
|
||||
}
|
||||
})
|
||||
.map((fill: any) => ({ ...fill, marketName: selectedMarket.name }))
|
||||
const mangoAccountFills = fills.filter((fill: any) => {
|
||||
if (fill.openOrders) {
|
||||
// handles serum event queue for spot trades
|
||||
return openOrderOwner ? fill.openOrders.equals(openOrderOwner) : false
|
||||
} else {
|
||||
// handles mango event queue for perp trades
|
||||
return (
|
||||
fill.taker.equals(openOrderOwner) || fill.maker.equals(openOrderOwner)
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
return formatTradeHistory(mangoAccountAddress, mangoAccountFills)
|
||||
}, [selectedMarket, mangoAccountAddress, openOrderOwner, fills])
|
||||
|
@ -204,7 +199,7 @@ const TradeHistory = () => {
|
|||
}
|
||||
let makerTaker = trade.liquidity
|
||||
|
||||
if ('maker' in trade) {
|
||||
if (!makerTaker && 'maker' in trade) {
|
||||
makerTaker = trade.maker ? 'Maker' : 'Taker'
|
||||
if (
|
||||
trade.taker &&
|
||||
|
|
|
@ -1047,17 +1047,23 @@ const mangoStore = create<MangoStore>()(
|
|||
const response = await fetch(
|
||||
`${MANGO_DATA_API_URL}/stats/trade-history?mango-account=${mangoAccountPk}&limit=${PAGINATION_PAGE_LENGTH}&offset=${offset}`
|
||||
)
|
||||
const parsedHistory = await response.json()
|
||||
const newHistory = parsedHistory.map((h: any) => h.activity_details)
|
||||
|
||||
const history =
|
||||
offset !== 0 ? loadedHistory.concat(newHistory) : newHistory
|
||||
|
||||
set((s) => {
|
||||
s.mangoAccount.tradeHistory.data = history?.sort(
|
||||
(x: any) => x.block_datetime
|
||||
const jsonResponse = await response.json()
|
||||
if (jsonResponse?.length) {
|
||||
const newHistory = jsonResponse.map(
|
||||
(h: any) => h.activity_details
|
||||
)
|
||||
})
|
||||
const history =
|
||||
offset !== 0 ? loadedHistory.concat(newHistory) : newHistory
|
||||
set((s) => {
|
||||
s.mangoAccount.tradeHistory.data = history?.sort(
|
||||
(x: any) => x.block_datetime
|
||||
)
|
||||
})
|
||||
} else {
|
||||
set((s) => {
|
||||
s.mangoAccount.tradeHistory.data = []
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Unable to fetch trade history', e)
|
||||
} finally {
|
||||
|
|
Loading…
Reference in New Issue