///
///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export type PricingParams = {
maxInitialLeverage: number;
maxLeverage: number;
maxPositionLockedUsd: BigNumber;
maxCumulativeShortPositionSizeUsd: BigNumber;
};
export declare const pricingParamsStruct: BeetStruct>;
export type Fees = {
swapIn: number;
swapOut: number;
stableSwapIn: number;
stableSwapOut: number;
addLiquidity: number;
removeLiquidity: number;
closePosition: number;
liquidation: number;
feeMax: number;
padding: number[];
padding2: BigNumber;
};
export declare const feesStruct: BeetStruct>;
export type BorrowRateParams = {
maxHourlyBorrowInterestRate: BigNumber;
};
export declare const borrowRateParamsStruct: BeetStruct>;
export type FeesStats = {
swapUsd: BigNumber;
addLiquidityUsd: BigNumber;
removeLiquidityUsd: BigNumber;
closePositionUsd: BigNumber;
liquidationUsd: BigNumber;
borrowUsd: BigNumber;
};
export declare const feesStatsStruct: BeetStruct>;
export type Assets = {
collateral: BigNumber;
owned: BigNumber;
locked: BigNumber;
};
export declare const assetsStruct: BeetStruct>;
export type VolumeStats = {
swapUsd: BigNumber;
addLiquidityUsd: BigNumber;
removeLiquidityUsd: BigNumber;
openPositionUsd: BigNumber;
closePositionUsd: BigNumber;
liquidationUsd: BigNumber;
};
export declare const volumeStatsStruct: BeetStruct>;
export type TradeStats = {
profitUsd: BigNumber;
lossUsd: BigNumber;
oiLongUsd: BigNumber;
oiShortUsd: BigNumber;
};
export declare const tradeStatsStruct: BeetStruct>;
export type U128Split = {
high: BigNumber;
low: BigNumber;
};
export declare const u128SplitStruct: BeetStruct>;
export type StableLockedAmountStat = {
custody: PublicKey;
lockedAmount: BigNumber;
padding: number[];
};
export declare const StableLockedAmountStatStruct: BeetStruct>;
export type PositionsAccounting = {
openPositions: BigNumber;
sizeUsd: BigNumber;
borrowSizeUsd: BigNumber;
lockedAmount: BigNumber;
weightedPrice: U128Split;
totalQuantity: U128Split;
cumulativeInterestUsd: BigNumber;
padding: number[];
cumulativeInterestSnapshot: U128Split;
exitFeeUsd: BigNumber;
stableLockedAmount: StableLockedAmountStat[];
};
export declare const positionsAccountingStruct: FixableBeetStruct>;
export type BorrowRateState = {
currentRate: BigNumber;
lastUpdate: BigNumber;
cumulativeInterest: U128Split;
};
export declare const borrowRateStateStruct: BeetStruct>;
export type Custody = {
buffer: Buffer;
bump: number;
tokenAccountBump: number;
allowTrade: number;
allowSwap: number;
decimals: number;
isStable: number;
padding: number[];
pool: PublicKey;
mint: PublicKey;
tokenAccount: PublicKey;
oracle: PublicKey;
tradeOracle: PublicKey;
pricing: PricingParams;
fees: Fees;
borrowRate: BorrowRateParams;
collectedFees: FeesStats;
volumeStats: VolumeStats;
tradeStats: TradeStats;
assets: Assets;
longPositions: PositionsAccounting;
shortPositions: PositionsAccounting;
borrowRateState: BorrowRateState;
};
export declare const custodyStruct: FixableBeetStruct>;
export type Position = {
buffer: Buffer;
bump: number;
side: number;
takeProfitThreadIsSet: number;
stopLossThreadIsSet: number;
padding: number[];
owner: PublicKey;
pool: PublicKey;
custody: PublicKey;
collateralCustody: PublicKey;
openTime: BigNumber;
updateTime: BigNumber;
price: BigNumber;
sizeUsd: BigNumber;
borrowSizeUsd: BigNumber;
collateralUsd: BigNumber;
unrealizedLossUsd: BigNumber;
cumulativeInterestSnapshot: U128Split;
lockedAmount: BigNumber;
collateralAmount: BigNumber;
exitFeeUsd: BigNumber;
liquidationFeeUsd: BigNumber;
takeProfitThreadId: BigNumber;
takeProfitLimitPrice: BigNumber;
stopLossThreadId: BigNumber;
stopLossLimitPrice: BigNumber;
stopLossClosePositionPrice: BigNumber;
};
export declare const positionStruct: BeetStruct>;
export type LockedStake = {
amount: BigNumber;
stakeTime: BigNumber;
claimTime: BigNumber;
endTime: BigNumber;
lockDuration: BigNumber;
rewardMultiplier: number;
lmRewardMultiplier: number;
voteMultiplier: number;
padding: number[];
amountWithRewardMultiplier: BigNumber;
amountWithLmRewardMultiplier: BigNumber;
resolved: number;
padding2: number[];
stakeResolutionThreadId: BigNumber;
earlyExit: number;
padding3: number[];
earlyExitFee: BigNumber;
isGenesis: number;
padding4: number[];
genesisClaimTime: BigNumber;
};
export declare const lockedStakeStruct: BeetStruct>;
export type LiquidStake = {
amount: BigNumber;
stakeTime: BigNumber;
claimTime: BigNumber;
overlapTime: BigNumber;
overlapAmount: BigNumber;
};
export declare const liquidStakeStruct: BeetStruct>;
export type Pool = {
buffer: number;
padding: Buffer;
bump: number;
lpTokenBump: number;
nbStableCustody: number;
initialized: number;
allowTrade: number;
allowSwap: number;
liquidityState: number;
registeredCustodyCount: number;
name: Buffer;
custodies: PublicKey[];
padding1: number[];
whitelistedSwapper: PublicKey;
ratios: Buffer;
padding2: number[];
aumUsdHigh: BigNumber;
aumUsdLow: BigNumber;
};
export declare const poolStruct: FixableBeetStruct>;
export type UserStaking = {
bump: number;
threadAuthorityBump: number;
padding: number[];
stakesClaimCronThreadId: BigNumber;
liquidStake: LiquidStake;
lockedStakes: LockedStake[];
};
export declare const userStakingStruct: FixableBeetStruct>;