mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
import { makeSuite, TestEnv } from './helpers/make-suite';
|
|
import { ProtocolErrors, RateMode } from '../../helpers/types';
|
|
import { APPROVAL_AMOUNT_LENDING_POOL, oneEther, ONE_YEAR } from '../../helpers/constants';
|
|
import { convertToCurrencyDecimals } from '../../helpers/contracts-helpers';
|
|
import { parseEther, parseUnits } from 'ethers/lib/utils';
|
|
import { BigNumber } from 'bignumber.js';
|
|
import { MockFlashLoanReceiver } from '../../types/MockFlashLoanReceiver';
|
|
import { getMockFlashLoanReceiver } from '../../helpers/contracts-getters';
|
|
import { advanceTimeAndBlock, waitForTx } from '../../helpers/misc-utils';
|
|
|
|
const { expect } = require('chai');
|
|
|
|
makeSuite('Mint to treasury', (testEnv: TestEnv) => {
|
|
let _mockFlashLoanReceiver = {} as MockFlashLoanReceiver;
|
|
|
|
const {
|
|
LP_IS_PAUSED,
|
|
INVALID_FROM_BALANCE_AFTER_TRANSFER,
|
|
INVALID_TO_BALANCE_AFTER_TRANSFER,
|
|
} = ProtocolErrors;
|
|
|
|
before(async () => {
|
|
_mockFlashLoanReceiver = await getMockFlashLoanReceiver();
|
|
});
|
|
|
|
it('User 0 deposits 1000 DAI. Borrower borrows 100 DAI. Clock moved forward one year. Calculates and verifies the amount earned by the treasury', async () => {
|
|
const { users, pool, dai, aDai, configurator } = testEnv;
|
|
|
|
const amountDAItoDeposit = await convertToCurrencyDecimals(dai.address, '1000');
|
|
const amountDAItoBorrow = await convertToCurrencyDecimals(dai.address, '100');
|
|
|
|
|
|
await dai.connect(users[0].signer).mint(amountDAItoDeposit);
|
|
|
|
// user 0 deposits 1000 DAI
|
|
await dai.connect(users[0].signer).approve(pool.address, APPROVAL_AMOUNT_LENDING_POOL);
|
|
await pool
|
|
.connect(users[0].signer)
|
|
.deposit(dai.address, amountDAItoDeposit, users[0].address, '0');
|
|
|
|
await pool
|
|
.connect(users[0].signer)
|
|
.borrow(dai.address, amountDAItoBorrow, RateMode.Variable, '0', users[0].address);
|
|
|
|
|
|
await advanceTimeAndBlock(parseInt(ONE_YEAR));
|
|
|
|
|
|
await dai.connect(users[0].signer).mint(amountDAItoDeposit);
|
|
|
|
await pool
|
|
.connect(users[0].signer)
|
|
.deposit(dai.address, amountDAItoDeposit, users[0].address, '0');
|
|
|
|
const reserveData = await pool.getReserveData(dai.address);
|
|
|
|
console.log(reserveData.accruedToTreasury.toString());
|
|
|
|
});
|
|
|
|
|
|
});
|