/// /// import { PublicKey } from '@solana/web3.js'; import BigNumber from 'bignumber.js'; import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet'; export type State = { accountDiscriminator: number[]; admin: PublicKey; signer: PublicKey; numberOfAuthorities: BigNumber; numberOfSubAccounts: BigNumber; collateralRatioInitial: BigNumber; collateralRatioMaintenance: BigNumber; collateralRatioInitialPreExpiry: BigNumber; numberOfYieldMarkets: number; numberOfMarginMarkets: number; signerNonce: number; twapDuration: number; marginIndexStart: number; marketIndexStart: number; keepers: PublicKey[]; keeperFeePerTx: BigNumber[]; keeperFee: BigNumber[]; }; export declare const stateStruct: FixableBeetStruct>; export declare enum MarketStatus { Initialized = 0, Active = 1, Paused = 2, ReduceOnly = 3, Updating = 4, Expired = 5, Settlement = 6 } export type MarginMarket = { accountDiscriminator: number[]; pubkey: PublicKey; mint: PublicKey; vault: PublicKey; name: number[]; market_index: number; padding: number[]; deposit_balance: BigNumber; next_deposit_record_id: BigNumber; flash_loan_amount: BigNumber; flash_loan_initial_token_amount: BigNumber; decimals: number; status: MarketStatus; }; export declare const marginMarketStruct: FixableBeetStruct>; export type AmmpoolRewardInfo = { mint: PublicKey; vault: PublicKey; authority: PublicKey; emissionsPerSecondX64: BigNumber; growthGlobalX64: BigNumber; }; export declare const ammPoolRewardInfoStruct: BeetStruct>; export type Ammpool = { ammpoolsConfig: PublicKey; liquidity: BigNumber; sqrtPrice: BigNumber; protocolFeeOwedA: BigNumber; protocolFeeOwedB: BigNumber; tokenMintBase: PublicKey; tokenVaultBase: PublicKey; feeGrowthGlobalA: BigNumber; tokenMintQuote: PublicKey; tokenVaultQuote: PublicKey; feeGrowthGlobalB: BigNumber; rewardLastUpdatedTimestamp: BigNumber; rewardInfos: AmmpoolRewardInfo[]; oracle: PublicKey; tickCurrentIndex: number; observationIndex: number; observationUpdateDuration: number; tickSpacing: number; tickSpacingSeed: number[]; feeRate: number; protocolFeeRate: number; }; export declare const ammpoolStruct: BeetStruct>; export declare enum MarginType { NonYieldBearing = 0, YieldBearing = 1 } export type YieldMarket = { accountDiscriminator: number[]; pubkey: PublicKey; oracle: PublicKey; name: number[]; quoteAssetVault: PublicKey; baseAssetVault: PublicKey; pool: Ammpool; startTs: BigNumber; expireTs: BigNumber; orderStepSize: BigNumber; minOrderSize: BigNumber; minLpAmount: BigNumber; minLiquidationSize: BigNumber; marketIndex: number; marginIndex: number; lpMarginIndex: number; marginType: MarginType; lpMarginType: MarginType; marginDecimals: number; lpMarginDecimals: number; }; export declare const yieldMarketStruct: FixableBeetStruct>; export type Oracle = { accountDiscriminator: number[]; admin: PublicKey; name: number[]; lastRate: BigNumber; rate: BigNumber; marketRate: BigNumber; ts: BigNumber; decimals: number; padding: number[]; epochStartTimestamp: BigNumber; lastEpochStartTimestamp: BigNumber; padding1: number[]; }; export declare const oracleStruct: FixableBeetStruct>; export type YieldPosition = { baseAssetAmount: BigNumber; quoteAssetAmount: BigNumber; lastRate: BigNumber; marketIndex: number; padding1: number[]; padding2: number[]; }; export declare const yieldPositionStruct: BeetStruct>; export declare enum OrderStatus { Init = 0, Open = 1, Filled = 2, Canceled = 3 } export declare enum OrderType { Market = 0, Limit = 1 } export type Order = { slot: BigNumber; priceLimit: BigNumber; baseAssetAmount: BigNumber; baseAssetAmountFilled: BigNumber; quoteAssetAmountFilled: BigNumber; expireTs: BigNumber; orderIndex: number; orderId: number; isolatedMarginAmount: BigNumber; marketIndex: number; status: OrderStatus; orderType: OrderType; isClose: boolean; padding1: number[]; padding2: number[]; }; export declare const orderStruct: BeetStruct>; export type MarginPosition = { balance: BigNumber; marketIndex: number; decimals: number; padding2: number[]; }; export declare const marginPositionStruct: BeetStruct>; export type User = { accountDiscriminator: number[]; authority: PublicKey; marginPositions: MarginPosition[]; orders: Order[]; yieldPositions: YieldPosition[]; lastActiveSlot: BigNumber; lastOrderId: number; subAccountId: number; idle: boolean; padding2: boolean; isIsolated: boolean; isExpiryOn: boolean; padding1: number[]; }; export declare const userStruct: FixableBeetStruct>; export type UserStats = { accountDiscriminator: number[]; authority: PublicKey; referrer: PublicKey; numberOfSubAccounts: number; numberOfSubAccountsCreated: number; padding: number[]; }; export declare const userStatsStruct: BeetStruct>; export type PositionRewardInfo = { growthInsideCheckpoint: BigNumber; amountOwed: BigNumber; }; export declare const positionrewardinfoStruct: BeetStruct>; export type AmmPosition = { ammpool: PublicKey; liquidity: BigNumber; tickLowerIndex: number; tickUpperIndex: number; lowerRate: BigNumber; upperRate: BigNumber; feeGrowthCheckpointA: BigNumber; feeOwedA: BigNumber; feeGrowthCheckpointB: BigNumber; feeOwedB: BigNumber; rewardInfos: PositionRewardInfo[]; }; export declare const positionStruct: BeetStruct>; export declare enum LpStatus { Active = 0, Updating = 1 } export type LP = { accountDiscriminator: number[]; authority: PublicKey; ammPosition: AmmPosition; reserveQuoteAmount: BigNumber; reserveBaseAmount: BigNumber; lastActiveSlot: BigNumber; subAccountId: number; idle: boolean; state: LpStatus; padding1: number[]; padding2: number[]; }; export declare const lpStruct: BeetStruct>; export type LPV2 = { accountDiscriminator: number[]; authority: PublicKey; ammpool: PublicKey; position: PublicKey; lastRate: BigNumber; lastLiquidity: BigNumber; lastRatio: BigNumber; last_fee_growth_global_a: BigNumber; fee_owed_a: BigNumber; last_fee_growth_global_b: BigNumber; fee_owed_b: BigNumber; padding: number[]; reserveQuoteAmount: BigNumber; reserveBaseAmount: BigNumber; lastActiveSlot: BigNumber; subAccountId: number; idle: boolean; padding1: number[]; padding2: number[]; }; export declare const lpV2Struct: BeetStruct>; export type UnifiedPosition = { accountDiscriminator: number[]; ammpool: PublicKey; tickLowerIndex: number; tickUpperIndex: number; lowerRate: BigNumber; upperRate: BigNumber; ratio: BigNumber; settledBaseAmount: BigNumber; settledQuoteAmount: BigNumber; padding: number[]; }; export declare const unifiedPositionStruct: BeetStruct>;