market.ts 803 B

1234567891011121314151617181920212223
  1. import { Commitment, Connection, PublicKey } from '@solana/web3.js';
  2. import { GetStructureSchema, MARKET_STATE_LAYOUT_V3 } from '@raydium-io/raydium-sdk';
  3. import { MINIMAL_MARKET_STATE_LAYOUT_V3 } from '../liquidity';
  4. export type MinimalMarketStateLayoutV3 = typeof MINIMAL_MARKET_STATE_LAYOUT_V3;
  5. export type MinimalMarketLayoutV3 =
  6. GetStructureSchema<MinimalMarketStateLayoutV3>;
  7. export async function getMinimalMarketV3(
  8. connection: Connection,
  9. marketId: PublicKey,
  10. commitment?: Commitment,
  11. ): Promise<MinimalMarketLayoutV3> {
  12. const marketInfo = await connection.getAccountInfo(marketId, {
  13. commitment,
  14. dataSlice: {
  15. offset: MARKET_STATE_LAYOUT_V3.offsetOf('eventQueue'),
  16. length: 32 * 3,
  17. },
  18. });
  19. return MINIMAL_MARKET_STATE_LAYOUT_V3.decode(marketInfo!.data);
  20. }