/// /// /// import { BeetStruct } from '@metaplex-foundation/beet'; import { PublicKey } from '@solana/web3.js'; import BigNumber from 'bignumber.js'; export type AccountFlag = { initialized: boolean; market: boolean; openOrders: boolean; requestQueue: boolean; eventQueue: boolean; bids: boolean; asks: boolean; }; export declare const accountFlagStruct: BeetStruct>; export type OracleConfig = { confFilter: BigNumber; maxStalenessSlots: BigNumber; reserved: number[]; }; export declare const oracleConfigStruct: BeetStruct>; export type NonZeroPubkeyOption = { key: PublicKey; }; export declare const nonZeroPubkeyOptionStruct: BeetStruct>; export type SerumMarketV1 = { buffer: Buffer; bump: Buffer; accountFlags: number; ownAddress: PublicKey; vaultSignerNonce: BigNumber; baseMint: PublicKey; quoteMint: PublicKey; baseVault: PublicKey; baseDepositsTotal: BigNumber; baseFeesAccrued: BigNumber; quoteVault: PublicKey; quoteDepositsTotal: BigNumber; quoteFeesAccrued: BigNumber; quoteDustThreshold: BigNumber; requestQueue: PublicKey; eventQueue: PublicKey; bids: PublicKey; asks: PublicKey; baseLotSize: BigNumber; quoteLotSize: BigNumber; feeRateBps: BigNumber; buffer2: Buffer; }; export declare const serumMarketV1Struct: BeetStruct>; export type SerumMarketV2 = { buffer: Buffer; bump: Buffer; accountFlags: number; ownAddress: PublicKey; vaultSignerNonce: BigNumber; baseMint: PublicKey; quoteMint: PublicKey; baseVault: PublicKey; baseDepositsTotal: BigNumber; baseFeesAccrued: BigNumber; quoteVault: PublicKey; quoteDepositsTotal: BigNumber; quoteFeesAccrued: BigNumber; quoteDustThreshold: BigNumber; requestQueue: PublicKey; eventQueue: PublicKey; bids: PublicKey; asks: PublicKey; baseLotSize: BigNumber; quoteLotSize: BigNumber; feeRateBps: BigNumber; referrerRebatesAccrued: BigNumber; buffer2: Buffer; }; export declare const serumMarketV2Struct: BeetStruct>; export type SerumMarketV3 = { buffer: Buffer; buffer1: Buffer; accountFlags: number; ownAddress: PublicKey; vaultSignerNonce: BigNumber; baseMint: PublicKey; quoteMint: PublicKey; baseVault: PublicKey; baseDepositsTotal: BigNumber; baseFeesAccrued: BigNumber; quoteVault: PublicKey; quoteDepositsTotal: BigNumber; quoteFeesAccrued: BigNumber; quoteDustThreshold: BigNumber; requestQueue: PublicKey; eventQueue: PublicKey; bids: PublicKey; asks: PublicKey; baseLotSize: BigNumber; quoteLotSize: BigNumber; feeRateBps: BigNumber; referrerRebatesAccrued: BigNumber; buffer3: Buffer; }; export declare const serumMarketV3Struct: BeetStruct>; export type OpenbookMarketV1 = { bump: number; base_decimals: number; quote_decimals: number; padding1: number[]; market_authority: PublicKey; time_expiry: BigNumber; collect_fee_admin: PublicKey; open_orders_admin: NonZeroPubkeyOption; consume_events_admin: NonZeroPubkeyOption; close_market_admin: NonZeroPubkeyOption; name: number[]; bids: PublicKey; asks: PublicKey; event_queue: PublicKey; oracle_a: NonZeroPubkeyOption; oracle_b: NonZeroPubkeyOption; oracle_config: OracleConfig; quote_lot_size: BigNumber; base_lot_size: BigNumber; seq_num: BigNumber; registration_time: BigNumber; maker_fee: BigNumber; taker_fee: BigNumber; fees_accrued: BigNumber; fees_to_referrers: BigNumber; referrer_rebates_accrued: BigNumber; fees_available: BigNumber; maker_volume: BigNumber; taker_volume_wo_oo: BigNumber; base_mint: PublicKey; quote_mint: PublicKey; market_base_vault: PublicKey; base_deposit_total: BigNumber; market_quote_vault: PublicKey; quote_deposit_total: BigNumber; reserved: number[]; }; export declare const openbookMarketV1Struct: BeetStruct>; export type OpenOrdersV1 = { buffer: Buffer; accountFlags: AccountFlag; market: PublicKey; owner: PublicKey; baseTokenFree: BigNumber; baseTokenTotal: BigNumber; quoteTokenFree: BigNumber; quoteTokenTotal: BigNumber; freeSlotBits: BigNumber; isBidBits: BigNumber; orders: BigNumber[]; clientIds: BigNumber[]; buffer2: Buffer; }; export declare const openOrdersV1Struct: BeetStruct>; export type OpenOrdersV2 = { buffer: Buffer; accountFlags: AccountFlag; market: PublicKey; owner: PublicKey; baseTokenFree: BigNumber; baseTokenTotal: BigNumber; quoteTokenFree: BigNumber; quoteTokenTotal: BigNumber; freeSlotBits: BigNumber; isBidBits: BigNumber; orders: BigNumber[]; clientIds: BigNumber[]; referrerRebatesAccrued: BigNumber; buffer2: Buffer; }; export declare const openOrdersV2Struct: BeetStruct>; export type Position = { bids_base_lots: BigNumber; asks_base_lots: BigNumber; base_free_native: BigNumber; quote_free_native: BigNumber; locked_maker_fees: BigNumber; referrer_rebates_available: BigNumber; maker_volume: BigNumber; taker_volume: BigNumber; reserved: number[]; }; export declare const positionStruct: BeetStruct>; export type OpenOrder = { id: BigNumber; client_id: BigNumber; locked_price: BigNumber; is_free: number; side_and_tree: number; padding: number[]; }; export declare const openOrderStruct: BeetStruct>; export type OpenOrdersV3 = { owner: PublicKey; market: PublicKey; name: number[]; delegate: NonZeroPubkeyOption; account_num: number; bump: number; padding: number[]; position: Position; open_orders: OpenOrder[]; }; export declare const openOrdersV3Struct: BeetStruct>; export type CLOBMarketAccount = SerumMarketV1 | SerumMarketV2 | SerumMarketV3; export type CLOBOrderStruct = OpenOrdersV1 | OpenOrdersV2;