better swap history fetching
This commit is contained in:
parent
e755a6560b
commit
da50977eac
|
@ -247,7 +247,7 @@ const SwapReviewRouteInfo = ({
|
|||
noSound: true,
|
||||
})
|
||||
actions.fetchGroup()
|
||||
actions.fetchSwapHistory(mangoAccount.publicKey.toString())
|
||||
actions.fetchSwapHistory(mangoAccount.publicKey.toString(), 30000)
|
||||
await actions.reloadMangoAccount()
|
||||
} catch (e: any) {
|
||||
console.error('onSwap error: ', e)
|
||||
|
|
|
@ -288,7 +288,10 @@ export type MangoStore = {
|
|||
fetchNfts: (connection: Connection, walletPk: PublicKey) => void
|
||||
fetchOpenOrders: (ma?: MangoAccount) => Promise<void>
|
||||
fetchProfileDetails: (walletPk: string) => void
|
||||
fetchSwapHistory: (mangoAccountPk: string) => Promise<void>
|
||||
fetchSwapHistory: (
|
||||
mangoAccountPk: string,
|
||||
timeout?: number
|
||||
) => Promise<void>
|
||||
fetchTokenStats: () => void
|
||||
fetchTourSettings: (walletPk: string) => void
|
||||
fetchWalletTokens: (wallet: Wallet) => Promise<void>
|
||||
|
@ -731,38 +734,40 @@ const mangoStore = create<MangoStore>()(
|
|||
console.error('Failed loading open orders ', e)
|
||||
}
|
||||
},
|
||||
fetchSwapHistory: async (mangoAccountPk: string) => {
|
||||
fetchSwapHistory: async (mangoAccountPk: string, timeout = 0) => {
|
||||
const set = get().set
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.loading = true
|
||||
})
|
||||
try {
|
||||
const history = await fetch(
|
||||
`https://mango-transaction-log.herokuapp.com/v4/stats/swap-history?mango-account=${mangoAccountPk}`
|
||||
)
|
||||
const parsedHistory = await history.json()
|
||||
const sortedHistory =
|
||||
parsedHistory && parsedHistory.length
|
||||
? parsedHistory.sort(
|
||||
(a: SwapHistoryItem, b: SwapHistoryItem) =>
|
||||
dayjs(b.block_datetime).unix() -
|
||||
dayjs(a.block_datetime).unix()
|
||||
)
|
||||
: []
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.loading = true
|
||||
})
|
||||
const history = await fetch(
|
||||
`https://mango-transaction-log.herokuapp.com/v4/stats/swap-history?mango-account=${mangoAccountPk}`
|
||||
)
|
||||
const parsedHistory = await history.json()
|
||||
const sortedHistory =
|
||||
parsedHistory && parsedHistory.length
|
||||
? parsedHistory.sort(
|
||||
(a: SwapHistoryItem, b: SwapHistoryItem) =>
|
||||
dayjs(b.block_datetime).unix() -
|
||||
dayjs(a.block_datetime).unix()
|
||||
)
|
||||
: []
|
||||
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.data = sortedHistory
|
||||
state.mangoAccount.stats.swapHistory.loading = false
|
||||
})
|
||||
} catch {
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.loading = false
|
||||
})
|
||||
notify({
|
||||
title: 'Failed to load account swap history data',
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.data = sortedHistory
|
||||
state.mangoAccount.stats.swapHistory.loading = false
|
||||
})
|
||||
} catch {
|
||||
set((state) => {
|
||||
state.mangoAccount.stats.swapHistory.loading = false
|
||||
})
|
||||
notify({
|
||||
title: 'Failed to load account swap history data',
|
||||
type: 'error',
|
||||
})
|
||||
}
|
||||
}, timeout)
|
||||
},
|
||||
fetchTokenStats: async () => {
|
||||
const set = get().set
|
||||
|
|
Loading…
Reference in New Issue