refactor mkt name loading
This commit is contained in:
parent
b53b43f81f
commit
1775f43a50
|
@ -24,6 +24,7 @@ import {
|
||||||
SearchSymbolResultItem,
|
SearchSymbolResultItem,
|
||||||
} from '@public/charting_library'
|
} from '@public/charting_library'
|
||||||
import { PublicKey } from '@solana/web3.js'
|
import { PublicKey } from '@solana/web3.js'
|
||||||
|
import { Group } from '@blockworks-foundation/mango-v4'
|
||||||
|
|
||||||
export const SUPPORTED_RESOLUTIONS = [
|
export const SUPPORTED_RESOLUTIONS = [
|
||||||
'1',
|
'1',
|
||||||
|
@ -69,13 +70,33 @@ const configurationData = {
|
||||||
exchanges: [],
|
exchanges: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
// async function getAllSymbols() {
|
const getTickerFromMktAddress = (
|
||||||
// const data = await makeApiRequest(
|
group: Group,
|
||||||
// 'public/tokenlist?sort_by=v24hUSD&sort_type=desc&offset=0&limit=-1'
|
symbolAddress: string
|
||||||
// )
|
): string | null => {
|
||||||
|
try {
|
||||||
|
const serumMkt = group.getSerum3MarketByExternalMarket(
|
||||||
|
new PublicKey(symbolAddress)
|
||||||
|
)
|
||||||
|
|
||||||
// return data.data.tokens
|
if (serumMkt) {
|
||||||
// }
|
return serumMkt.name
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
console.log('Address is not a serum market')
|
||||||
|
}
|
||||||
|
|
||||||
|
const perpMarkets = Array.from(group.perpMarketsMapByMarketIndex.values())
|
||||||
|
const perpMkt = perpMarkets.find(
|
||||||
|
(perpMarket) => perpMarket.publicKey.toString() === symbolAddress
|
||||||
|
)
|
||||||
|
|
||||||
|
if (perpMkt) {
|
||||||
|
return perpMkt.name
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
let marketType: 'spot' | 'perp'
|
let marketType: 'spot' | 'perp'
|
||||||
|
|
||||||
|
@ -212,27 +233,15 @@ export default {
|
||||||
symbol: '',
|
symbol: '',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const group = mangoStore.getState().group
|
|
||||||
const spotMarkets = await mangoStore.getState().serumMarkets
|
const mangoStoreState = mangoStore.getState()
|
||||||
const isSpotMarket = spotMarkets.find(
|
const group = mangoStoreState.group
|
||||||
(market) =>
|
let ticker = mangoStoreState.selectedMarket.name
|
||||||
market.serumMarketExternal.toString() === symbolAddress ||
|
|
||||||
market.publicKey.toString() === symbolAddress
|
|
||||||
)
|
|
||||||
let ticker
|
|
||||||
if (group && symbolAddress) {
|
if (group && symbolAddress) {
|
||||||
if (isSpotMarket) {
|
const newTicker = getTickerFromMktAddress(group, symbolAddress)
|
||||||
const serumMktName = group.getSerum3MarketByExternalMarket(
|
if (newTicker) {
|
||||||
new PublicKey(symbolAddress)
|
ticker = newTicker
|
||||||
)?.name
|
|
||||||
ticker = serumMktName
|
|
||||||
} else {
|
|
||||||
const perpMktName = Array.from(
|
|
||||||
group.perpMarketsMapByMarketIndex.values()
|
|
||||||
).find(
|
|
||||||
(perpMarket) => perpMarket.publicKey.toString() === symbolAddress
|
|
||||||
)?.name
|
|
||||||
ticker = perpMktName
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue