fbonds-core
Version:
Banx protocol sdk
129 lines (128 loc) • 5.32 kB
TypeScript
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;