///
///
///
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
declare enum TokenPricingSource {
SPLStakePool = 0,
MarinadeStakePool = 1,
JitoRestakingVault = 2,
FragmetricNormalizedTokenPool = 3,
FragmetricRestakingFund = 4,
OrcaDEXLiquidityPool = 5,
SanctumSingleValidatorSPLStakePool = 6
}
export type WithdrawalBatch = {
batch_id: BigNumber;
num_requests: BigNumber;
receipt_token_amount: BigNumber;
enqueued_at: BigNumber;
_reserved: number[];
};
export declare const WithdrawalBatchStruct: BeetStruct>;
export type AssetState = {
token_mint: PublicKey;
token_program: PublicKey;
accumulated_deposit_capacity_amount: BigNumber;
accumulated_deposit_amount: BigNumber;
depositable: number;
_padding: number[];
withdrawable: number;
normal_reserve_rate_bps: number;
normal_reserve_max_amount: BigNumber;
withdrawal_last_created_request_id: BigNumber;
withdrawal_last_processed_batch_id: BigNumber;
withdrawal_last_batch_enqueued_at: BigNumber;
withdrawal_last_batch_processed_at: BigNumber;
withdrawal_pending_batch: WithdrawalBatch;
_padding2: number[];
withdrawal_num_queued_batches: number;
withdrawal_queued_batches: WithdrawalBatch[];
_reserved: number[];
withdrawable_value_as_receipt_token_amount: BigNumber;
withdrawal_user_reserved_amount: BigNumber;
operation_receivable_amount: BigNumber;
operation_reserved_amount: BigNumber;
};
export declare const AssetStateStruct: BeetStruct>;
export type TokenPricingSourcePod = {
discriminant: number;
_padding: number[];
address: PublicKey;
};
export declare const TokenPricingSourcePodStruct: BeetStruct>;
export type SupportedToken = {
mint: PublicKey;
program: PublicKey;
decimals: number;
_padding: number[];
pricing_source: TokenPricingSourcePod;
one_token_as_sol: BigNumber;
token: AssetState;
rebalancing_amount: BigNumber;
sol_allocation_weight: BigNumber;
sol_allocation_capacity_amount: BigNumber;
pending_unstaking_amount_as_sol: BigNumber;
one_token_as_receipt_token: BigNumber;
_reserved: number[];
};
export declare const supportedTokenStruct: BeetStruct>;
export type NormalizedToken = {
mint: PublicKey;
program: PublicKey;
decimals: number;
enabled: number;
_padding: number[];
pricing_source: TokenPricingSourcePod;
one_token_as_sol: BigNumber;
operation_reserved_amount: BigNumber;
_reserved: number[];
};
export declare const normalizedTokenStruct: BeetStruct>;
export type NormalizedSupportedToken = {
mint: PublicKey;
program: PublicKey;
reserve_account: PublicKey;
locked_amount: BigNumber;
decimals: number;
withdrawal_reserved_amount: BigNumber;
one_token_as_sol: BigNumber;
pricing_source: TokenPricingSource;
pricing_source_account: PublicKey;
_reserved: number[];
};
export declare const normalizedSupportedTokenStruct: BeetStruct>;
export type NormalizedTokenPool = {
buffer: Buffer;
data_version: number;
bump: number;
normalized_token_mint: PublicKey;
normalized_token_program: PublicKey;
supported_tokens: NormalizedSupportedToken[];
_reserved: number[];
};
export declare const normalizedTokenPoolStruct: FixableBeetStruct>;
export type AssetPod = {
discriminant: number;
_padding: number[];
sol_amount: BigNumber;
token_amount: BigNumber;
token_mint: PublicKey;
token_pricing_source: TokenPricingSourcePod;
};
export declare const AssetPodStruct: BeetStruct>;
export type TokenValuePod = {
numerator: AssetPod[];
num_numerator: BigNumber;
denominator: BigNumber;
};
export declare const TokenValuePodStruct: FixableBeetStruct>;
export type RestakingVaultDelegation = {
operator: PublicKey;
supported_token_allocation_weight: BigNumber;
supported_token_allocation_capacity_amount: BigNumber;
supported_token_delegated_amount: BigNumber;
supported_token_undelegating_amount: BigNumber;
supported_token_redelegating_amount: BigNumber;
_reserved: number[];
};
export declare const RestakingVaultDelegationStruct: BeetStruct>;
export type RestakingVault = {
vault: PublicKey;
program: PublicKey;
supported_token_mint: PublicKey;
receipt_token_mint: PublicKey;
receipt_token_program: PublicKey;
receipt_token_decimals: number;
_padding: number[];
one_receipt_token_as_sol: BigNumber;
receipt_token_pricing_source: TokenPricingSourcePod;
receipt_token_operation_reserved_amount: BigNumber;
receipt_token_operation_receivable_amount: BigNumber;
sol_allocation_weight: BigNumber;
sol_allocation_capacity_amount: BigNumber;
_padding2: number[];
num_delegations: number;
delegations: RestakingVaultDelegation[];
_padding3: number[];
num_compounding_reward_tokens: number;
compounding_reward_token_mints: PublicKey[];
_reserved: number[];
};
export declare const RestakingVaultStruct: BeetStruct>;
export type OperationCommandPod = {
discriminant: number;
buffer: number[];
};
export declare const OperationCommandPodStruct: BeetStruct>;
export type OperationCommandAccountMetaPod = {
pubkey: PublicKey;
is_writable: number;
_padding: number[];
};
export declare const OperationCommandAccountMetaPodStruct: BeetStruct>;
export type OperationCommandEntryPod = {
num_required_accounts: number;
_padding: number[];
required_accounts: OperationCommandAccountMetaPod[];
command: OperationCommandPod;
};
export declare const OperationCommandEntryPodStruct: FixableBeetStruct>;
export type OperationState = {
updated_slot: BigNumber;
updated_at: BigNumber;
expired_at: BigNumber;
_padding: number[];
no_transition: number;
next_sequence: number;
num_operated: BigNumber;
next_command: OperationCommandEntryPod;
_reserved: number[];
};
export declare const OperationStateStruct: FixableBeetStruct>;
export type WrappedToken = {
mint: PublicKey;
program: PublicKey;
decimals: number;
enabled: number;
_padding: number[];
supply: BigNumber;
_reserved: number[];
};
export declare const WrappedTokenStruct: FixableBeetStruct>;
export type FundAccount = {
buffer: Buffer;
data_version: number;
bump: number;
reserve_account_bump: number;
treasury_account_bump: number;
wrap_account_bump: number;
_padding: number[];
transfer_enabled: number;
address_lookup_table_enabled: number;
address_lookup_table_account: PublicKey;
reserve_account: PublicKey;
treasury_account: PublicKey;
receipt_token_mint: PublicKey;
receipt_token_program: PublicKey;
receipt_token_decimals: number;
_padding2: number[];
receipt_token_supply_amount: BigNumber;
one_receipt_token_as_sol: BigNumber;
receipt_token_value_updated_slot: BigNumber;
receipt_token_value: TokenValuePod;
withdrawal_batch_threshold_interval_seconds: BigNumber;
withdrawal_fee_rate_bps: number;
withdrawal_enabled: number;
deposit_enabled: number;
donation_enabled: number;
_padding4: number[];
sol: AssetState;
_padding6: number[];
num_supported_tokens: number;
supported_tokens: SupportedToken[];
normalized_token: NormalizedToken;
_padding7: number[];
num_restaking_vaults: number;
restaking_vaults: RestakingVault[];
operation: OperationState;
wrap_account: PublicKey;
wrapped_token: WrappedToken;
};
export declare const FundAccountStruct: FixableBeetStruct>;
export {};