@aave/protocol-js
Version:
Aave protocol data aggregation tool
35 lines (34 loc) • 3.67 kB
TypeScript
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[]>;
}