refactor mkt name loading

This commit is contained in:
tjs 2023-05-05 14:13:43 -04:00
parent b53b43f81f
commit 1775f43a50
1 changed files with 35 additions and 26 deletions

View File

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