UNPKG

@bandz/protocol-js

Version:

Bandz protocol data aggregation tool

35 lines (34 loc) 3.67 kB
import { ILendingPool } from '../../contract-types'; import IERC20ServiceInterface from '../../interfaces/ERC20'; import SynthetixInterface from '../../interfaces/Synthetix'; import LendingPoolInterface from '../../interfaces/v2/LendingPool'; import { Configuration, SmartBCHTransactionTypeExtended, LendingPoolMarketConfig } from '../../types'; import { LPBorrowParamsType, LPDepositParamsType, LPLiquidationCall, LPRepayParamsType, LPRepayWithCollateral, LPSetUsageAsCollateral, LPSwapBorrowRateMode, LPSwapCollateral, LPWithdrawParamsType, LPFlashLiquidation } from '../../types/LendingPoolMethodTypes'; import WBCHGatewayInterface from '../../interfaces/WBCHGateway'; import LiquiditySwapAdapterInterface from '../../interfaces/LiquiditySwapAdapterParaswap'; import RepayWithCollateralAdapterInterface from '../../interfaces/RepayWithCollateralAdapter'; import BaseService from '../BaseService'; export default class LendingPool extends BaseService<ILendingPool> implements LendingPoolInterface { readonly market: string; readonly erc20Service: IERC20ServiceInterface; readonly lendingPoolAddress: string; readonly synthetixService: SynthetixInterface; readonly WBCHGatewayService: WBCHGatewayInterface; readonly liquiditySwapAdapterService: LiquiditySwapAdapterInterface; readonly repayWithCollateralAdapterService: RepayWithCollateralAdapterInterface; readonly lendingPoolConfig: LendingPoolMarketConfig | undefined; readonly flashLiquidationAddress: string; readonly swapCollateralAddress: string; readonly repayWithCollateralAddress: string; constructor(config: Configuration, erc20Service: IERC20ServiceInterface, synthetixService: SynthetixInterface, WBCHGatewayService: WBCHGatewayInterface, liquiditySwapAdapterService: LiquiditySwapAdapterInterface, repayWithCollateralAdapterService: RepayWithCollateralAdapterInterface, market: string, lendingPoolConfig: LendingPoolMarketConfig | undefined); deposit({ user, reserve, amount, onBehalfOf, referralCode }: LPDepositParamsType): Promise<SmartBCHTransactionTypeExtended[]>; withdraw({ user, reserve, amount, onBehalfOf, aTokenAddress }: LPWithdrawParamsType): Promise<SmartBCHTransactionTypeExtended[]>; borrow({ user, reserve, amount, interestRateMode, debtTokenAddress, onBehalfOf, referralCode, }: LPBorrowParamsType): Promise<SmartBCHTransactionTypeExtended[]>; repay({ user, reserve, amount, interestRateMode, onBehalfOf }: LPRepayParamsType): Promise<SmartBCHTransactionTypeExtended[]>; swapBorrowRateMode({ user, reserve, interestRateMode }: LPSwapBorrowRateMode): Promise<SmartBCHTransactionTypeExtended[]>; setUsageAsCollateral({ user, reserve, usageAsCollateral }: LPSetUsageAsCollateral): Promise<SmartBCHTransactionTypeExtended[]>; liquidationCall({ liquidator, liquidatedUser, debtReserve, collateralReserve, purchaseAmount, getAToken, liquidateAll, }: LPLiquidationCall): Promise<SmartBCHTransactionTypeExtended[]>; swapCollateral({ user, flash, fromAsset, fromAToken, toAsset, fromAmount, minToAmount, permitSignature, swapAll, onBehalfOf, referralCode, augustus, swapCallData, }: LPSwapCollateral): Promise<SmartBCHTransactionTypeExtended[]>; repayWithCollateral({ user, fromAsset, fromAToken, assetToRepay, repayWithAmount, repayAmount, permitSignature, repayAllDebt, rateMode, onBehalfOf, referralCode, flash, useBchPath, }: LPRepayWithCollateral): Promise<SmartBCHTransactionTypeExtended[]>; flashLiquidation({ user, collateralAsset, borrowedAsset, debtTokenCover, liquidateAll, initiator, useBchPath, }: LPFlashLiquidation): Promise<SmartBCHTransactionTypeExtended[]>; }