fix trade history when swapping mango accounts

This commit is contained in:
tjs 2023-01-19 22:44:45 -05:00
parent a95df1b248
commit 3f431676ef
2 changed files with 28 additions and 27 deletions

View File

@ -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 &&

View File

@ -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 {