UNPKG

@aave/protocol-js

Version:

Aave 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, EthereumTransactionTypeExtended, LendingPoolMarketConfig } from '../../types'; import { LPBorrowParamsType, LPDepositParamsType, LPLiquidationCall, LPRepayParamsType, LPRepayWithCollateral, LPSetUsageAsCollateral, LPSwapBorrowRateMode, LPSwapCollateral, LPWithdrawParamsType, LPFlashLiquidation } from '../../types/LendingPoolMethodTypes'; import WETHGatewayInterface from '../../interfaces/WETHGateway'; 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 wethGatewayService: WETHGatewayInterface; 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, wethGatewayService: WETHGatewayInterface, liquiditySwapAdapterService: LiquiditySwapAdapterInterface, repayWithCollateralAdapterService: RepayWithCollateralAdapterInterface, market: string, lendingPoolConfig: LendingPoolMarketConfig | undefined); deposit({ user, reserve, amount, onBehalfOf, referralCode }: LPDepositParamsType): Promise<EthereumTransactionTypeExtended[]>; withdraw({ user, reserve, amount, onBehalfOf, aTokenAddress }: LPWithdrawParamsType): Promise<EthereumTransactionTypeExtended[]>; borrow({ user, reserve, amount, interestRateMode, debtTokenAddress, onBehalfOf, referralCode, }: LPBorrowParamsType): Promise<EthereumTransactionTypeExtended[]>; repay({ user, reserve, amount, interestRateMode, onBehalfOf }: LPRepayParamsType): Promise<EthereumTransactionTypeExtended[]>; swapBorrowRateMode({ user, reserve, interestRateMode }: LPSwapBorrowRateMode): Promise<EthereumTransactionTypeExtended[]>; setUsageAsCollateral({ user, reserve, usageAsCollateral }: LPSetUsageAsCollateral): Promise<EthereumTransactionTypeExtended[]>; liquidationCall({ liquidator, liquidatedUser, debtReserve, collateralReserve, purchaseAmount, getAToken, liquidateAll, }: LPLiquidationCall): Promise<EthereumTransactionTypeExtended[]>; swapCollateral({ user, flash, fromAsset, fromAToken, toAsset, fromAmount, minToAmount, permitSignature, swapAll, onBehalfOf, referralCode, augustus, swapCallData, }: LPSwapCollateral): Promise<EthereumTransactionTypeExtended[]>; repayWithCollateral({ user, fromAsset, fromAToken, assetToRepay, repayWithAmount, repayAmount, permitSignature, repayAllDebt, rateMode, onBehalfOf, referralCode, flash, useEthPath, }: LPRepayWithCollateral): Promise<EthereumTransactionTypeExtended[]>; flashLiquidation({ user, collateralAsset, borrowedAsset, debtTokenCover, liquidateAll, initiator, useEthPath, }: LPFlashLiquidation): Promise<EthereumTransactionTypeExtended[]>; }