///
///
///
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;