fix orderbook init

This commit is contained in:
Adrian Brzeziński 2023-12-28 22:30:17 +01:00
parent 76dba0dac6
commit 7f9d47cbf3
2 changed files with 10 additions and 7 deletions

View File

@ -66,7 +66,7 @@ const Orderbook = () => {
const { isDesktop } = useViewport()
const [orderbookData, setOrderbookData] = useState<OrderbookData | null>(null)
const currentOrderbookData = useRef<OrderbookL2>()
console.log(isMarketReadyForDecode(market), '@@@@@')
const [baseBank, quoteBank] = useMemo(() => {
const { group } = mangoStore.getState()
if (!market || !group) return [undefined, undefined]
@ -305,6 +305,7 @@ const Orderbook = () => {
connection
.getAccountInfoAndContext(bidsPk)
.then(({ context, value: info }) => {
console.log(isMarketReadyForDecode(market), '@@@@@')
if (!info || !isMarketReadyForDecode(market)) return
const decodedBook = decodeBook(client, market, info, 'bids')
set((state) => {
@ -319,7 +320,6 @@ const Orderbook = () => {
const lastSeenSlot =
mangoStore.getState().selectedMarket.lastSeenSlot.bids
if (context.slot > lastSeenSlot) {
const market = getMarket()
if (!isMarketReadyForDecode(market)) return
const decodedBook = decodeBook(client, market!, info, 'bids')
if (decodedBook instanceof BookSide) {
@ -355,7 +355,6 @@ const Orderbook = () => {
const lastSeenSlot =
mangoStore.getState().selectedMarket.lastSeenSlot.asks
if (context.slot > lastSeenSlot) {
const market = getMarket()
if (!isMarketReadyForDecode(market)) return
const decodedBook = decodeBook(client, market!, info, 'asks')
if (decodedBook instanceof BookSide) {
@ -381,7 +380,13 @@ const Orderbook = () => {
}
}
}
}, [bidAccountAddress, askAccountAddress, connection, useOrderbookFeed])
}, [
bidAccountAddress,
askAccountAddress,
connection,
useOrderbookFeed,
market,
])
useEffect(() => {
const market = getMarket()

View File

@ -59,9 +59,7 @@ export const isMarketReadyForDecode = (
) => {
if (
!market ||
(market instanceof Market &&
(!market.decoded.accountFlags.initialized ||
!(market.decoded.accountFlags.bids ^ market.decoded.accountFlags.asks)))
(market instanceof Market && !market.decoded.accountFlags.initialized)
) {
return false
} else {