///
///
import { PublicKey } from '@solana/web3.js';
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import BigNumber from 'bignumber.js';
export type StakePool = {
accountDiscriminator: number[];
stakeTokenMint: PublicKey;
stakedTokens: BigNumber;
stakedNotes: BigNumber;
withdrawingTokens: BigNumber;
increaseNoteRatePerSecond: BigNumber;
maxMultipleOfNote: BigNumber;
};
export declare const stakePoolStruct: BeetStruct>;
export type StakeAccount = {
accountDiscriminator: number[];
owner: PublicKey;
notes: BigNumber;
stakedTokens: BigNumber;
stakedNotes: BigNumber;
withdrawingTokens: BigNumber;
timeOfWithdrawApply: BigNumber;
claimableReward: BigNumber;
lastUpdateNoteTime: BigNumber;
lastDistributedAndNoteRate: BigNumber;
};
export declare const stakeAccountStruct: BeetStruct>;
export type InterestRateData = {
utilizationRate: number;
kValue: number;
bValue: number;
};
export declare const interestRateDataStruct: BeetStruct>;
export type LendingPool = {
accountDiscriminator: number[];
nxMarket: PublicKey;
tokenMint: PublicKey;
borrowTokens: BigNumber;
borrowNotes: BigNumber;
depositTokens: BigNumber;
depositNotes: BigNumber;
depositInterest: BigNumber;
borrowInterest: BigNumber;
protocolFee: BigNumber;
accruedUntil: BigNumber;
utilizationFlag: number;
interestRateConfigs: InterestRateData[];
};
export declare const lendingPoolStruct: BeetStruct>;
export type SolayerPool = {
accountDiscriminator: number[];
nxMarket: PublicKey;
lrtMint: PublicKey;
amount: BigNumber;
totalNxSolayerPoints: BigNumber;
lastUpdateTime: BigNumber;
};
export declare const solayerPoolStruct: BeetStruct>;
export type LendingAccount = {
accountDiscriminator: number[];
nxMarket: PublicKey;
owner: PublicKey;
depositNotes: BigNumber;
depositTokens: BigNumber;
lastNoteRate: BigNumber;
totalReward: BigNumber;
};
export declare const lendingAccountStruct: BeetStruct>;
export type VSolPositionDetail = {
collateralMint: PublicKey;
borrowMint: PublicKey;
leverageMint: PublicKey;
collateralNote: BigNumber;
collateralTokens: BigNumber;
borrowNote: BigNumber;
borrowTokens: BigNumber;
leverageNote: BigNumber;
leverageTokens: BigNumber;
leverageMultiples: BigNumber;
lastPointsAndLeverageNotesRate: BigNumber;
pointReward: BigNumber;
};
export declare const vSolPositionDetailStruct: BeetStruct>;
export type SwapTemp = {
beforeAmount: BigNumber;
expected: BigNumber;
};
export declare const swapTempStruct: BeetStruct>;
export type VSolPosition = {
accountDiscriminator: number[];
nxMarket: PublicKey;
owner: PublicKey;
positions: VSolPositionDetail[];
swapTemp: SwapTemp;
};
export declare const vSolPositionStruct: FixableBeetStruct>;
export type PositionDetail = {
collateralMint: PublicKey;
borrowMint: PublicKey;
leverageMint: PublicKey;
collateralNote: BigNumber;
collateralTokens: BigNumber;
borrowNote: BigNumber;
borrowTokens: BigNumber;
leverageNote: BigNumber;
leverageTokens: BigNumber;
liquidationFlag: BigNumber;
leverageMultiples: BigNumber;
positionType: PositionType;
};
export declare enum PositionType {
Normal = 0,
Solayer = 1,
Fragmetric = 2
}
export declare const positionDetailStruct: BeetStruct>;
export type FragmetricPosition = {
accountDiscriminator: number[];
nxMarket: PublicKey;
owner: PublicKey;
positions: PositionDetail[];
};
export declare const fragmetricPositionStruct: FixableBeetStruct>;
export type FragmetricUser = {
accountDiscriminator: number[];
nxMarket: PublicKey;
owner: PublicKey;
receiptToken: PublicKey;
amount: BigNumber;
nxFragmetricPoints: BigNumber;
lastUpdateTime: BigNumber;
};
export declare const fragmetricUserStruct: FixableBeetStruct>;
export type FragmetricPool = {
accountDiscriminator: number[];
nxMarket: PublicKey;
receiptToken: PublicKey;
amount: BigNumber;
totalNxFragmetricPoints: BigNumber;
lastUpdateTime: BigNumber;
padding: BigNumber[];
};
export declare const fragmetricPoolStruct: FixableBeetStruct>;
export type StakePoolWithdrawal = {
stakeAccount: PublicKey;
solAmount: BigNumber;
};
export declare const stakePoolWithdrawalStruct: BeetStruct>;
export type SolayerUser = {
accountDiscriminator: number[];
nxMarket: PublicKey;
lrtMint: PublicKey;
amount: BigNumber;
nxSolayerPoints: BigNumber;
lastUpdateTime: BigNumber;
withdrawals: StakePoolWithdrawal[][];
};
export declare const solayerUserStruct: FixableBeetStruct>;
export type CollateralDetail = {
tokenMint: PublicKey;
depositNote: BigNumber;
depositToken: BigNumber;
marketValue: BigNumber;
};
export declare const collateralDetailStruct: BeetStruct>;
export type LoanDetail = {
tokenMint: PublicKey;
loanNote: BigNumber;
loanToken: BigNumber;
loanValue: BigNumber;
};
export declare const loanDetailStruct: BeetStruct>;
export type MarginAccount = {
accountDiscriminator: number[];
leveragefi: PublicKey;
owner: PublicKey;
deposits: CollateralDetail[];
loans: LoanDetail[];
leverage: BigNumber;
jlpNotes: BigNumber;
activeLoan: PublicKey;
};
export declare const marginAccountStruct: FixableBeetStruct>;
export type MarginPool = {
accountDiscriminator: number[];
leveragefi: PublicKey;
vault: PublicKey;
feeDestination: PublicKey;
poolAuthority: PublicKey;
tokenMint: PublicKey;
tokenPriceOracle: PublicKey;
borrowedTokens: BigNumber;
depositTokens: BigNumber;
depositNotes: BigNumber;
loanNotes: BigNumber;
depositInterest: BigNumber;
loanInterest: BigNumber;
protocolFee: BigNumber;
accruedUntil: BigNumber;
utilizationFlag: number;
};
export declare const marginPoolStruct: BeetStruct>;