import { Market, Orderbook } from '@project-serum/serum'; import { Cluster, PublicKey } from '@solana/web3.js'; import BN from 'bn.js'; import { MangoClient } from '../client'; import { As } from '../utils'; import { TokenIndex } from './bank'; import { Group } from './group'; export type MarketIndex = number & As<'market-index'>; export declare class Serum3Market { publicKey: PublicKey; group: PublicKey; baseTokenIndex: TokenIndex; quoteTokenIndex: TokenIndex; serumProgram: PublicKey; serumMarketExternal: PublicKey; marketIndex: MarketIndex; registrationTime: BN; reduceOnly: boolean; forceClose: boolean; oraclePriceBand: number; name: string; static from(publicKey: PublicKey, obj: { group: PublicKey; baseTokenIndex: number; quoteTokenIndex: number; name: number[]; serumProgram: PublicKey; serumMarketExternal: PublicKey; marketIndex: number; registrationTime: BN; reduceOnly: number; forceClose: number; oraclePriceBand: number; }): Serum3Market; constructor(publicKey: PublicKey, group: PublicKey, baseTokenIndex: TokenIndex, quoteTokenIndex: TokenIndex, name: number[], serumProgram: PublicKey, serumMarketExternal: PublicKey, marketIndex: MarketIndex, registrationTime: BN, reduceOnly: boolean, forceClose: boolean, oraclePriceBand: number); findOoPda(programId: PublicKey, mangoAccount: PublicKey): Promise; getFeeRates(taker?: boolean): number; /** * * @param group * @returns maximum leverage one can bid on this market, this is only for display purposes, * also see getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi */ maxBidLeverage(group: Group): number; /** * * @param group * @returns maximum leverage one can ask on this market, this is only for display purposes, * also see getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi */ maxAskLeverage(group: Group): number; loadBids(client: MangoClient, group: Group): Promise; loadAsks(client: MangoClient, group: Group): Promise; computePriceForMarketOrderOfSize(client: MangoClient, group: Group, size: number, side: 'buy' | 'sell'): Promise; logOb(client: MangoClient, group: Group): Promise; } export type Serum3OrderType = { limit: Record; } | { immediateOrCancel: Record; } | { postOnly: Record; }; export declare namespace Serum3OrderType { const limit: { limit: {}; }; const immediateOrCancel: { immediateOrCancel: {}; }; const postOnly: { postOnly: {}; }; } export type Serum3SelfTradeBehavior = { decrementTake: Record; } | { cancelProvide: Record; } | { abortTransaction: Record; }; export declare namespace Serum3SelfTradeBehavior { const decrementTake: { decrementTake: {}; }; const cancelProvide: { cancelProvide: {}; }; const abortTransaction: { abortTransaction: {}; }; } export type Serum3Side = { bid: Record; } | { ask: Record; }; export declare namespace Serum3Side { const bid: { bid: {}; }; const ask: { ask: {}; }; } export declare function generateSerum3MarketExternalVaultSignerAddress(cluster: Cluster, serum3Market: Serum3Market, serum3MarketExternal: Market): Promise; //# sourceMappingURL=serum3.d.ts.map