interface IAaveLendingPoolV2 {

    /**
    * @dev deposits The underlying asset into the reserve. A corresponding amount of the overlying asset (aTokens)
    * is minted.
    * @param reserve the address of the reserve
    * @param amount the amount to be deposited
    * @param referralCode integrators are assigned a referral code and can potentially receive rewards.
    **/
    function deposit(
        address reserve,
        uint256 amount,
        address onBehalfOf,
        uint16 referralCode
    ) external;

    /**
    * @dev withdraws the assets of user.
    * @param reserve the address of the reserve
    * @param amount the underlying amount to be redeemed
    * @param to address that will receive the underlying
    **/
    function withdraw(
        address reserve,
        uint256 amount,
        address to
    ) external;
}
function deposit(
    address reserve,
    uint256 amount,
    address onBehalfOf,
    uint16 referralCode
) external;

/**
 * @dev deposits The underlying asset into the reserve. A corresponding amount of the overlying asset (aTokens)
 * is minted.
 * @param reserve the address of the reserve
 * @param amount the amount to be deposited
 * @param referralCode integrators are assigned a referral code and can potentially receive rewards.
 **/