/// import { web3 } from "@project-serum/anchor"; import { PublicKey } from "@solana/web3.js"; import { CreateReceivableConfig, CredixPassConfig, DealConfig, UpdateGlobalMarketConfig, UpdateMarketAdminsConfig } from "../config"; import { GlobalMarketState } from "../idl/idl.types"; import { Base } from "../rpc/Base"; import { CredixClient, SolanaContext } from "../rpc/CredixClient"; import { BorrowerInfo } from "./BorrowerInfo"; import { CredixPass } from "./CredixPass"; import { Deal, DealStatus } from "./Deal"; import { Fraction } from "./Fraction"; import { ManagedBorrower } from "./ManagedBorrower"; import { MarketAdmins } from "./MarketAdmins"; import { Receivable } from "./Receivable"; import { RepaymentSchedule } from "./RepaymentSchedule"; import { ScowPoolInvestor } from "./ScowPoolInvestor"; import { ScowTrancheInvestor } from "./ScowTrancheInvestor"; import { SecondaryMarket } from "./SecondaryMarket"; import { Tranche } from "./Tranche"; import { Tranches } from "./Tranches"; import { WithdrawEpoch } from "./WithdrawEpoch"; export declare enum MarketStatus { OPEN_FOR_FUNDING = 0, PRIVATE = 1, CLOSED = 2 } export declare class Market extends Base { address: PublicKey; constructor(address: PublicKey, solanaContext: SolanaContext, client: CredixClient, programVersion: GlobalMarketState); reload(): Promise; get programId(): web3.PublicKey; get secondaryMarketProgramId(): web3.PublicKey; get baseMintPK(): web3.PublicKey; get lpMintPK(): web3.PublicKey; get poolOutstandingCredit(): web3.TokenAmount; get status(): MarketStatus; totalOutstandingCredit(deals: Deal[], tranches: (Tranches | null)[], schedules: (RepaymentSchedule | null)[]): Promise; get treasury(): web3.PublicKey; get hasWithdrawEpochs(): boolean; get withdrawFee(): Fraction; get poolSizeLimitPercentage(): Fraction; get isFrozen(): boolean; get lockedLiquidity(): web3.TokenAmount; get latestWithdrawEpochIdx(): number; get withdrawEpochAvailableLiquidityDays(): number; get withdrawEpochAvailableLiquiditySeconds(): number; get latestWithdrawEpochEnd(): number; get withdrawEpochRequestDays(): number; get withdrawEpochRequestSeconds(): number; get withdrawEpochRedeemDays(): number; get withdrawEpochRedeemSeconds(): number; get name(): string; get totalRedeemedBaseAmount(): web3.TokenAmount; get lockupDuration(): number; get isUncapped(): boolean; get baseMintMetadata(): { name: string; symbol: string; }; get isCrossChain(): boolean; private depositBuilder; deposit(amount: number): Promise; depositIx(amount: number, investor?: PublicKey): Promise; private withdrawBuilder; withdraw(amount: number): Promise; withdrawIx(amount: number, investor?: PublicKey): Promise; createDeal(dealConfig: DealConfig): Promise; getTreasuryBalance(): Promise; getLPSupply(): Promise; getLPPrice(): Promise; getBasePrice(): Promise; findBaseTokenAccount(pk: PublicKey): web3.PublicKey; findLPTokenAccount(pk: PublicKey): web3.PublicKey; userBaseBalance(user: PublicKey): Promise; userBaseTokenAccountBalance(userBaseTokenAccount: PublicKey): Promise; userLPBalance(user: PublicKey): Promise; fetchLiquidityPoolBalance(): Promise; fetchDeal(borrower: PublicKey, dealNumber: number): Promise; fetchMarketAdmins(): Promise; calculateTVL(): Promise; fetchDeals(status?: DealStatus): Promise; fetchAllScowTrancheInvestors(): Promise; fetchAllScowPoolInvestors(): Promise; fetchBorrowerInfo(borrower: PublicKey): Promise; fetchCredixPass(holder: PublicKey): Promise; static generatePDA(marketName: string, programId: PublicKey): [web3.PublicKey, number]; static generateLPTokenMintPDA(marketName: string, programId: PublicKey): [web3.PublicKey, number]; private generateCredixPassPDA; generateSigningAuthorityPDA(): [web3.PublicKey, number]; findLiquidityPoolTokenAccount(): web3.PublicKey; getUserStake(user: PublicKey): Promise; private issueCredixPassBuilder; issueCredixPassIx(holder: PublicKey, credixPassConfig: CredixPassConfig, owner?: PublicKey): Promise; issueCredixPass(holder: PublicKey, credixPassConfig: CredixPassConfig): Promise; private updateCredixPassBuilder; updateCredixPassIx(holder: PublicKey, credixPassConfig: CredixPassConfig, owner?: PublicKey): Promise; updateCredixPass(holder: PublicKey, credixPassConfig: CredixPassConfig): Promise; private freezeBuilder; freezeIx(owner?: PublicKey): Promise; freeze(): Promise; private thawBuilder; thawIx(owner?: PublicKey): Promise; thaw(): Promise; get credixFeePercentage(): Fraction; calculateAvgFinancingFee(): Promise; updateCredixFees(credixFeePercentage: Fraction): Promise; private updateConfigBuilder; updateConfig(updateConfig: UpdateGlobalMarketConfig): Promise; updateConfigIx(updateConfig: UpdateGlobalMarketConfig, owner?: PublicKey): Promise; private updateMarketAdminsBuilder; updateMarketAdminsIx(marketAdminsConfig: UpdateMarketAdminsConfig, owner?: PublicKey): Promise; updateMarketAdmins(marketAdminsConfig: UpdateMarketAdminsConfig): Promise; private thawFreezeTokenAccountBuilder; thawFreezeTokenAccountIx(freeze: boolean, mint: PublicKey, tokenAccount: PublicKey, owner?: PublicKey): Promise; thawFreezeTokenAccount(freeze: boolean, mint: PublicKey, tokenAccount: PublicKey): Promise; isManager(user: PublicKey): Promise; private createWithdrawEpochBuilder; createWithdrawEpochIx(owner?: PublicKey): Promise; createWithdrawEpoch(): Promise; fetchWithdrawEpoch(withEpochIdx: number): Promise; fetchLatestWithdrawEpoch(): Promise; private setLockedLiquidityBuilder; setLockedLiquidityIx(owner?: PublicKey): Promise; setLockedLiquidity(): Promise; fetchPortfolio(investor: PublicKey): Promise<{ dealsInvested: { deal: Deal & { dealTranches: Tranches; repaymentSchedule: RepaymentSchedule; }; tranches: { tranche: Tranche; baseAmountInvested: web3.TokenAmount; withdrawable: web3.TokenAmount; withdrawn: web3.TokenAmount; gains: web3.TokenAmount; }[]; }[]; poolValue: web3.TokenAmount; }>; averageTenorInDays(): Promise; private initSecondaryMarketBuilder; initSecondaryMarketIx(owner?: PublicKey): Promise; initSecondaryMarket(): Promise; fetchSecondaryMarket(): Promise; fetchManagedBorrower(borrowerName: string): Promise; private createManagedBorrowerBuilder; createManagedBorrower(borrowerName: string): Promise; createManagedBorrowerIx(borrowerName: string, ownerPk?: PublicKey): Promise; fetchScowPoolInvestor(investorBaseTokenAccount: PublicKey): Promise; private createScowPoolInvestorBuilder; createScowPoolInvestor(investorBaseTokenAccount: PublicKey): Promise; createScowPoolInvestorIx(investorBaseTokenAccount: PublicKey, ownerPk?: PublicKey): Promise; private createReceivableBuilder; createReceivableIx(receivableConfig: CreateReceivableConfig, owner?: PublicKey): Promise; createReceivable(receivableConfig: CreateReceivableConfig): Promise; private fundReceivableBuilder; fundReceivableIx(receivable: Receivable, owner?: PublicKey): Promise; fundReceivable(receivable: Receivable): Promise; } //# sourceMappingURL=Market.d.ts.map