///
///
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
import { FixableBeetStruct, DataEnumKeyAsKind, BeetStruct } from '@metaplex-foundation/beet';
type APYRecord = {
Fixed: {
apy: number;
};
};
type APY = DataEnumKeyAsKind;
type LoanTermsRecord = {
Time: {
start: BigNumber;
duration: BigNumber;
total_owed_lamports: BigNumber;
};
};
type LoanTerms = DataEnumKeyAsKind;
type OrderBookTypeRecord = {
Collection: {
collectionKey: PublicKey;
};
NFTList: {
collectionKey: PublicKey;
};
};
type OrderBookType = DataEnumKeyAsKind;
type LoanTermsSpecRecord = {
Time: {
duration: BigNumber;
};
};
type LoanTermsSpec = DataEnumKeyAsKind;
type BookLoanTermsRecord = {
Fixed: {
terms: LoanTermsSpec;
};
LenderChooses: NonNullable;
};
type BookLoanTerms = DataEnumKeyAsKind;
export type OrderBook = {
accountDiscriminator: number[];
version: number;
orderBookType: OrderBookType;
apy: APY;
loanTerms: BookLoanTerms;
feePermillicentage: number;
feeAuthority: PublicKey;
};
export declare const orderBookStruct: FixableBeetStruct>;
export type NftList = {
accountDiscriminator: number[];
version: number;
collectionName: number[];
};
export declare const nftListStruct: FixableBeetStruct>;
type LoanStateRecord = {
Offer: {
lenderWallet: PublicKey;
termsSpec: LoanTermsSpec;
offerTime: BigNumber;
};
Taken: {
nftCollateralMint: PublicKey;
lenderNoteMint: PublicKey;
borrowerNoteMint: PublicKey;
apy: APY;
terms: LoanTerms;
isCollateralFrozen: number;
};
};
type LoanState = DataEnumKeyAsKind;
export type Loan = {
accountDiscriminator: number[];
version: number;
principalLamports: BigNumber;
orderBook: PublicKey;
valueTokenMint: PublicKey;
escrowBumpSeed: number;
loanState: LoanState;
};
export declare const loanStruct: FixableBeetStruct>;
export type EscrowPda = {
accountDiscriminator: number[];
bump: number;
};
export declare const escrowPdaStruct: FixableBeetStruct>;
export type ProgramVersion = {
accountDiscriminator: number[];
version: number;
bump: number;
updated: BigNumber;
};
export declare const programVersionStruct: FixableBeetStruct>;
export type TokenLendingPool = {
accountDiscriminator: number[];
orderbook: PublicKey;
lender: PublicKey;
usdc_vault: PublicKey;
collateral_vault: PublicKey;
nonce: BigNumber;
total_usdc_liquidity: BigNumber;
available_usdc_liquidity: BigNumber;
collateral_required_amount: BigNumber;
total_usdc_interest: BigNumber;
total_loan_count: BigNumber;
active_loan_count: BigNumber;
total_defaulted_loan_count: BigNumber;
total_defaulted_usdc_amount: BigNumber;
total_defaulted_collateral_amount: BigNumber;
version: number;
bump: number;
padding: number[];
};
export declare const tokenLendingPoolStruct: BeetStruct>;
export type TokenLendingOrderBook = {
accountDiscriminator: number[];
fee_authority: PublicKey;
loan_mint: PublicKey;
collateral_mint: PublicKey;
collateral_token_program: PublicKey;
duration: BigNumber;
min_liquidity: BigNumber;
max_liquidity: BigNumber;
apr: number;
fee_permillicentage: number;
collateral_decimals: number;
version: number;
bump: number;
padding: number[];
};
export declare const tokenLendingOrderBookStruct: BeetStruct>;
export type TokenLendingLoan = {
accountDiscriminator: number[];
orderbook: PublicKey;
borrower: PublicKey;
pool: PublicKey;
principal_usdc_amount: BigNumber;
collateral_required_amount: BigNumber;
start_ts: BigNumber;
end_ts: BigNumber;
apr: number;
version: number;
padding: number[];
};
export declare const tokenLendingLoanStruct: BeetStruct>;
export {};