import { GetStructureSchema, publicKey, seq, struct, u128, u64 } from '../marshmallow' /* ================= state layouts ================= */ export const STABLE_STATE_LAYOUT_V1 = struct([ u64('accountType'), u64('status'), u64('nonce'), u64('maxOrder'), u64('depth'), u64('baseDecimal'), u64('quoteDecimal'), u64('state'), u64('resetFlag'), u64('minSize'), u64('volMaxCutRatio'), u64('amountWaveRatio'), u64('baseLotSize'), u64('quoteLotSize'), u64('minPriceMultiplier'), u64('maxPriceMultiplier'), u64('systemDecimalsValue'), u64('abortTradeFactor'), u64('priceTickMultiplier'), u64('priceTick'), // Fees u64('minSeparateNumerator'), u64('minSeparateDenominator'), u64('tradeFeeNumerator'), u64('tradeFeeDenominator'), u64('pnlNumerator'), u64('pnlDenominator'), u64('swapFeeNumerator'), u64('swapFeeDenominator'), // OutPutData u64('baseNeedTakePnl'), u64('quoteNeedTakePnl'), u64('quoteTotalPnl'), u64('baseTotalPnl'), u64('poolOpenTime'), u64('punishPcAmount'), u64('punishCoinAmount'), u64('orderbookToInitTime'), u128('swapBaseInAmount'), u128('swapQuoteOutAmount'), u128('swapQuoteInAmount'), u128('swapBaseOutAmount'), u64('swapQuote2BaseFee'), u64('swapBase2QuoteFee'), publicKey('baseVault'), publicKey('quoteVault'), publicKey('baseMint'), publicKey('quoteMint'), publicKey('lpMint'), publicKey('modelDataAccount'), publicKey('openOrders'), publicKey('marketId'), publicKey('marketProgramId'), publicKey('targetOrders'), publicKey('owner'), seq(u64('padding'), 64, 'padding'), ]) export type StableStateLayoutV1 = typeof STABLE_STATE_LAYOUT_V1 export type StableStateLayout = StableStateLayoutV1 export type StableStateV1 = GetStructureSchema export type StableState = StableStateV1 /* ================= index ================= */ // version => stable state layout export const STABLE_VERSION_TO_STATE_LAYOUT: { [version: number]: StableStateLayout } = { 1: STABLE_STATE_LAYOUT_V1, }