import { Commitment, Connection, PublicKey } from '@solana/web3.js'; import { GetStructureSchema, MARKET_STATE_LAYOUT_V3, publicKey, struct } from '@raydium-io/raydium-sdk'; export const MINIMAL_MARKET_STATE_LAYOUT_V3 = struct([publicKey('eventQueue'), publicKey('bids'), publicKey('asks')]); export type MinimalMarketStateLayoutV3 = typeof MINIMAL_MARKET_STATE_LAYOUT_V3; export type MinimalMarketLayoutV3 = GetStructureSchema; export async function getMinimalMarketV3( connection: Connection, marketId: PublicKey, commitment?: Commitment, ): Promise { const marketInfo = await connection.getAccountInfo(marketId, { commitment, dataSlice: { offset: MARKET_STATE_LAYOUT_V3.offsetOf('eventQueue'), length: 32 * 3, }, }); return MINIMAL_MARKET_STATE_LAYOUT_V3.decode(marketInfo!.data); }