UNPKG

fbonds-core

Version:

Banx protocol sdk

129 lines (128 loc) 5.32 kB
import { BondOfferV3, BondTradeTransactionV2, BondTradeTransactionV2State, BondTradeTransactionV3, BondingCurveType, FraktBond, LendingTokenType, PairState, RedeemResult, RepayDestination, UserVault } from '../../../types'; import { BN, web3 } from '@coral-xyz/anchor'; export declare const optimisticInitializeBondTradeTransaction: (args: { loanValue: BN; fraktBond: web3.PublicKey; assetReceiver: web3.PublicKey; borrower: web3.PublicKey; bondOffer: web3.PublicKey; bondTradeTransaction: web3.PublicKey; marketApr: BN; inputFee: boolean; isStakedBanx: boolean; isRefinance: boolean; isBorrower: boolean; redeemResult: RedeemResult; borrowerOriginalLent: BN; borrowerFullRepaidAmount: BN; lendingToken: LendingTokenType; previousDebt: BN; isSplCollateral: boolean; protocolInterestFee: BN; protocolInputFee: BN; }) => BondTradeTransactionV3; export declare const optimisticInitializeBondOffer: (args: { loanValue: BN; hadoMarket: web3.PublicKey; assetReceiver: web3.PublicKey; bondOffer: web3.PublicKey; }) => BondOfferV3; export declare const getRepayAmountOfBondTradeTransaction: (bondTradeTransaction: BondTradeTransactionV3) => BN; export declare const nowInSeconds: () => number; export declare const wadMul: (x: number, y: number) => number; export declare const wadDiv: (x: number, y: number) => number; export declare const wadMulBN: (x: BN, y: BN) => BN; export declare const wadDivBN: (x: BN, y: BN) => BN; export declare const basePointsToWadsBN: (basePoints: BN) => BN; export declare const basePointsToWads: (basePoints: number) => number; export declare const calculateCurrentInterestSolPure: ({ loanValue, startTime, currentTime, rateBasePoints, }: { loanValue: number; startTime: number; currentTime: number; rateBasePoints: number; }) => number; export declare const calculateCurrentInterestSolPureBN: ({ loanValue, startTime, currentTime, rateBasePoints, }: { loanValue: BN; startTime: BN; currentTime: BN; rateBasePoints: BN; }) => BN; export interface PerpetualLenderActivity { lent: BN; currentRemainingLentAmount: BN; isNewLoan: boolean; interest: BN; apr: BN; status: BondTradeTransactionV2State; duration: BN; received: BN; nftMint: web3.PublicKey; timestamp: BN; lender: web3.PublicKey; borrower: web3.PublicKey; publicKey: web3.PublicKey; } export declare const getPerpetualLenderActivityV3: (args: { fraktBond: FraktBond; bondTradeTransaction: BondTradeTransactionV3; }) => PerpetualLenderActivity[]; export declare const getPerpetualLenderActivity: (args: { fraktBond: FraktBond; bondTradeTransaction: BondTradeTransactionV2; }) => PerpetualLenderActivity[]; export interface PerpetualBorrowerActivity { borrowed: BN; currentLentAmount: BN; currentRemainingLentAmount: BN; interest: BN; apr: BN; status: BondTradeTransactionV2State; duration: BN; repaid: BN; nftMint: web3.PublicKey; borrower: web3.PublicKey; timestamp: BN; publicKey: web3.PublicKey; bondTradeTransaction: web3.PublicKey; } export declare const getPerpetualBorrowerActivityV3: (args: { fraktBond: FraktBond; bondTradeTransaction: BondTradeTransactionV3; }) => PerpetualBorrowerActivity[]; export declare const getPerpetualBorrowerActivity: (args: { fraktBond: FraktBond; bondTradeTransaction: BondTradeTransactionV2; }) => PerpetualBorrowerActivity[]; export declare const getPerpetualOfferSize: (bondOffer: BondOfferV3) => BN; export declare const getPerpetualOfferSizeBonding: (bondOffer: BondOfferV3) => BN; export declare const checkIsHadomarketSponsored: (hadoMarket: string) => string | undefined; export declare const checkIsTestDev: (user: string) => boolean; export declare const calculateAccruedInterestOfRepaidBondTradeTransaction: (bondTradeTransaction: BondTradeTransactionV2, repayFee: BN) => BN; export declare const calculateDynamicApr: (loanToValue: number, turnDynamicAprOn: boolean) => number; export declare const calculateLoanRepayValue: (bondTradeTransaction: BondTradeTransactionV2, repayFee: BN) => BN; export declare const getRepaymentDestination: (pairState: PairState | undefined, shouldCompound: boolean) => RepayDestination; export declare const calculatePartOfLoanBodyFromInterest: (args: { soldAt: number; rateBasePoints: number; iterestToPay: number; }) => number; export declare const calculateInputFeeWhenBorrow: (args: { amountToGet: BN; previousDebt: BN; inputFee: boolean; isRefinance: boolean; isBorrower: boolean; inputFeeBp: BN; }) => BN; export declare const getBondingCurveTypeFromLendingToken: (lendingToken: LendingTokenType) => BondingCurveType; export declare const getFullLoanBodyFromBorrowerSendedAmount: (args: { borrowerSendedAmount: number; upfrontFeeBasePoints: number; }) => number; export declare const getTokenMintFromLendingTokenType: (lendingToken: LendingTokenType) => web3.PublicKey; export declare const calculateCollateralPerTokens: (amountToGet: number, collateralPerToken: any, tokenDecimals: number) => number; export declare const calculateBanxSolStakingRewards: (args: { userVault: UserVault; nowSlot: BN; currentEpochStartAt: BN; }) => BN;