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); }