///
///
///
import { PublicKey } from '@solana/web3.js';
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import BigNumber from 'bignumber.js';
export type Price = {
value: BigNumber;
exp: BigNumber;
};
export declare const priceStruct: BeetStruct>;
export type CollateralInfo = {
mint: PublicKey;
lowerHeuristic: BigNumber;
upperHeuristic: BigNumber;
expHeuristic: BigNumber;
maxTwapDivergenceBps: BigNumber;
scopePriceIdTwap: BigNumber;
scopePriceChain: number[];
name: number[];
maxAgePriceSeconds: BigNumber;
maxAgeTwapSeconds: BigNumber;
maxIgnorableAmountAsReward: BigNumber;
disabled: number;
padding0: number[];
padding: BigNumber[];
};
export declare const collateralInfoStruct: BeetStruct>;
export type CollateralInfos = {
infos: CollateralInfo[];
};
export declare const collateralInfosStruct: FixableBeetStruct>;
export type ScopeChainAccount = {
chainArray: number[][];
};
export declare const scopeChainAccountStruct: FixableBeetStruct>;
export type TermsSignature = {
signature: number[];
};
export declare const termsSignatureStruct: BeetStruct>;
export type WithdrawalCaps = {
configCapacity: BigNumber;
currentTotal: BigNumber;
lastIntervalStartTimestamp: BigNumber;
configIntervalLengthSeconds: BigNumber;
};
export declare const withdrawalCapsStruct: BeetStruct>;
export type KaminoRewardInfo = {
decimals: BigNumber;
rewardVault: PublicKey;
rewardMint: PublicKey;
rewardCollateralId: BigNumber;
lastIssuanceTs: BigNumber;
rewardPerSecond: BigNumber;
amountUncollected: BigNumber;
amountIssuedCumulative: BigNumber;
amountAvailable: BigNumber;
};
export declare const kaminoRewardInfoStruct: BeetStruct>;
export type RebalanceRaw = {
params: number[];
state: number[];
referencePriceType: number;
};
export declare const rebalanceRawStruct: BeetStruct>;
export type WhirlpoolStrategy = {
buffer: Buffer;
adminAuthority: PublicKey;
globalConfig: PublicKey;
baseVaultAuthority: PublicKey;
baseVaultAuthorityBump: BigNumber;
pool: PublicKey;
poolTokenVaultA: PublicKey;
poolTokenVaultB: PublicKey;
tickArrayLower: PublicKey;
tickArrayUpper: PublicKey;
position: PublicKey;
positionMint: PublicKey;
positionMetadata: PublicKey;
positionTokenAccount: PublicKey;
tokenAVault: PublicKey;
tokenBVault: PublicKey;
tokenAVaultAuthority: PublicKey;
tokenBVaultAuthority: PublicKey;
tokenAVaultAuthorityBump: BigNumber;
tokenBVaultAuthorityBump: BigNumber;
tokenAMint: PublicKey;
tokenBMint: PublicKey;
tokenAMintDecimals: BigNumber;
tokenBMintDecimals: BigNumber;
tokenAAmounts: BigNumber;
tokenBAmounts: BigNumber;
tokenACollateralId: BigNumber;
tokenBCollateralId: BigNumber;
scopePrices: PublicKey;
scopeProgram: PublicKey;
sharesMint: PublicKey;
sharesMintDecimals: BigNumber;
sharesMintAuthority: PublicKey;
sharesMintAuthorityBump: BigNumber;
sharesIssued: BigNumber;
status: BigNumber;
reward0Amount: BigNumber;
reward0Vault: PublicKey;
reward0CollateralId: BigNumber;
reward0Decimals: BigNumber;
reward1Amount: BigNumber;
reward1Vault: PublicKey;
reward1CollateralId: BigNumber;
reward1Decimals: BigNumber;
reward2Amount: BigNumber;
reward2Vault: PublicKey;
reward2CollateralId: BigNumber;
reward2Decimals: BigNumber;
depositCapUsd: BigNumber;
feesACumulative: BigNumber;
feesBCumulative: BigNumber;
reward0AmountCumulative: BigNumber;
reward1AmountCumulative: BigNumber;
reward2AmountCumulative: BigNumber;
depositCapUsdPerIxn: BigNumber;
withdrawalCapA: WithdrawalCaps;
withdrawalCapB: WithdrawalCaps;
maxPriceDeviationBps: BigNumber;
swapVaultMaxSlippageBps: BigNumber;
swapVaultMaxSlippageFromReferenceBps: BigNumber;
strategyType: BigNumber;
depositFee: BigNumber;
withdrawFee: BigNumber;
feesFee: BigNumber;
reward0Fee: BigNumber;
reward1Fee: BigNumber;
reward2Fee: BigNumber;
positionTimestamp: BigNumber;
kaminoRewards: KaminoRewardInfo[];
strategyDex: BigNumber;
raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
allowDepositWithoutInvest: BigNumber;
raydiumPoolConfigOrBaseVaultAuthority: PublicKey;
depositBlocked: number;
creationStatus: number;
investBlocked: number;
shareCalculationMethod: number;
withdrawBlocked: number;
reservedFlag2: number;
localAdminBlocked: number;
flashVaultSwapAllowed: number;
referenceSwapPriceA: Price;
referenceSwapPriceB: Price;
isCommunity: number;
rebalanceType: number;
padding0: number[];
rebalanceRaw: RebalanceRaw;
padding1: number[];
tokenAFeesFromRewardsCumulative: BigNumber;
tokenBFeesFromRewardsCumulative: BigNumber;
strategyLookupTable: PublicKey;
padding3: BigNumber[];
padding4: BigNumber[];
padding5: BigNumber[];
padding6: BigNumber[];
};
export declare const whirlpoolStrategyStruct: BeetStruct>;
export type ProtocolPositionState = {
buffer: Buffer;
bump: number;
poolId: PublicKey;
tickLowerIndex: BigNumber;
tickUpperIndex: BigNumber;
liquidity: BigNumber;
feeGrowthInside0LastX64: BigNumber;
feeGrowthInside1LastX64: BigNumber;
tokenFeesOwed0: BigNumber;
tokenFeesOwed1: BigNumber;
rewardGrowthInside: BigNumber[];
padding: BigNumber[];
};
export declare const protocolPositionStateStruct: BeetStruct>;
export type UserState = {
buffer: Buffer;
userId: BigNumber;
farmState: PublicKey;
owner: PublicKey;
legacyStake: BigNumber;
rewardsTallyScaled: BigNumber[];
rewardsIssuedUnclaimed: BigNumber[];
lastClaimTs: BigNumber[];
activeStakeScaled: BigNumber;
pendingDepositStakeScaled: BigNumber;
pendingDepositStakeTs: BigNumber;
pendingWithdrawalUnstakeScaled: BigNumber;
pendingWithdrawalUnstakeTs: BigNumber;
bump: BigNumber;
delegatee: PublicKey;
lastStakeTs: BigNumber;
padding: BigNumber[];
};
export declare const userStateStruct: BeetStruct>;
export type TokenInfo = {
mint: PublicKey;
decimals: BigNumber;
padding: BigNumber[];
};
export declare const tokenInfoStruct: BeetStruct>;
export type RewardPerTimeUnitPoint = {
tsStart: BigNumber;
rewardPerTimeUnit: BigNumber;
};
export declare const rewardPerTimeUnitPointStruct: BeetStruct;
export type RewardScheduleCurve = {
points: RewardPerTimeUnitPoint[];
};
export declare const rewardScheduleCurveStruct: BeetStruct>;
export type RewardInfo = {
token: TokenInfo;
rewardsVault: PublicKey;
rewardsAvailable: BigNumber;
rewardScheduleCurve: RewardScheduleCurve;
minClaimDurationSeconds: BigNumber;
lastIssuanceTs: BigNumber;
rewardsIssuedUnclaimed: BigNumber;
rewardsIssuedCumulative: BigNumber;
rewardPerShareScaled: BigNumber;
placeholder0: BigNumber;
rewardType: number;
rewardsPerSecondDecimals: number;
padding0: number[];
padding1: BigNumber[];
};
export declare const rewardInfoStruct: BeetStruct>;
export type FarmState = {
buffer: Buffer;
farmAdmin: PublicKey;
globalConfig: PublicKey;
token: TokenInfo;
rewardInfos: RewardInfo[];
numRewardTokens: BigNumber;
numUsers: BigNumber;
totalStakedAmount: BigNumber;
farmVault: PublicKey;
farmVaultsAuthority: PublicKey;
farmVaultsAuthorityBump: BigNumber;
delegateAuthority: PublicKey;
timeUnit: number;
padding0: number[];
withdrawAuthority: PublicKey;
depositWarmupPeriod: BigNumber;
withdrawalCooldownPeriod: BigNumber;
totalActiveStakeScaled: BigNumber;
totalPendingStakeScaled: BigNumber;
totalPendingAmount: BigNumber;
slashedAmountCurrent: BigNumber;
slashedAmountCumulative: BigNumber;
slashedAmountSpillAddress: PublicKey;
lockingMode: BigNumber;
lockingStartTimestamp: BigNumber;
lockingDuration: BigNumber;
lockingEarlyWithdrawalPenaltyBps: BigNumber;
depositCapAmount: BigNumber;
scopePrices: PublicKey;
scopeOraclePriceId: BigNumber;
scopeOracleMaxAge: BigNumber;
pendingFarmAdmin: PublicKey;
strategyId: PublicKey;
padding: BigNumber[];
};
export declare const farmStateStruct: BeetStruct>;
export type VaultAllocation = {
reserve: PublicKey;
ctokenVault: PublicKey;
targetAllocationWeight: BigNumber;
tokenAllocationCap: BigNumber;
ctokenVaultBump: BigNumber;
configPadding: BigNumber[];
ctokenAllocation: BigNumber;
lastInvestSlot: BigNumber;
tokenTargetAllocationSf: BigNumber;
statePadding: BigNumber[];
};
export declare const vaultAllocationStruct: BeetStruct>;
export type VaultState = {
accountDiscriminator: number[];
vaultAdminAuthority: PublicKey;
baseVaultAuthority: PublicKey;
baseVaultAuthorityBump: BigNumber;
tokenMint: PublicKey;
tokenMintDecimals: BigNumber;
tokenVault: PublicKey;
tokenProgram: PublicKey;
sharesMint: PublicKey;
sharesMintDecimals: BigNumber;
tokenAvailable: BigNumber;
sharesIssued: BigNumber;
availableCrankFunds: BigNumber;
padding0: BigNumber;
performanceFeeBps: BigNumber;
managementFeeBps: BigNumber;
lastFeeChargeTimestamp: BigNumber;
prevAumSf: BigNumber;
pendingFeesSf: BigNumber;
vaultAllocationStrategy: VaultAllocation[];
padding1: BigNumber[];
minDepositAmount: BigNumber;
minWithdrawAmount: BigNumber;
minInvestAmount: BigNumber;
minInvestDelaySlots: BigNumber;
crankFundFeePerReserve: BigNumber;
pendingAdmin: PublicKey;
cumulativeEarnedInterestSf: BigNumber;
cumulativeMgmtFeesSf: BigNumber;
cumulativePerfFeesSf: BigNumber;
name: number[];
vaultLookupTable: PublicKey;
vaultFarm: PublicKey;
creationTimestamp: BigNumber;
padding2: BigNumber;
allocationAdmin: PublicKey;
padding3: BigNumber[];
};
export declare const vaultStateStruct: BeetStruct>;