Skip to content

Commit 2bebcb9

Browse files
itofarinacruzdanilo
authored andcommitted
🚧 hh tests
1 parent 3c8f504 commit 2bebcb9

File tree

6 files changed

+136
-79
lines changed

6 files changed

+136
-79
lines changed

test/hardhat/13_floating.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ describe("Smart Pool", function () {
120120
await wbtc.connect(bob).approve(marketWBTC.address, parseUnits("1", 8));
121121
await marketWBTC.connect(bob).approve(john.address, parseUnits("1", 8));
122122
await marketWBTC.connect(bob).deposit(parseUnits("1", 8), bob.address);
123+
await ethers.provider.send("evm_increaseTime", [3_600]);
123124
});
124125
it("THEN bob's eWBTC balance is 1", async () => {
125126
expect(await marketWBTC.balanceOf(bob.address)).to.equal(parseUnits("1", 8));

test/hardhat/18_eth_market.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ describe("ETHMarket - receive bare ETH instead of WETH", function () {
292292
await weth.deposit({ value: parseUnits("60") });
293293
await marketWETH.deposit(parseUnits("60"), alice.address);
294294
await auditor.enterMarket(marketWETH.address);
295+
await provider.send("evm_increaseTime", [3_600]);
295296
});
296297
describe("WHEN borrowing with ETH (native)", () => {
297298
let tx: ContractTransaction;
@@ -630,6 +631,7 @@ describe("ETHMarket - receive bare ETH instead of WETH", function () {
630631
await weth.deposit({ value: parseUnits("60") });
631632
await marketWETH.deposit(parseUnits("60"), alice.address);
632633
await auditor.enterMarket(marketWETH.address);
634+
await provider.send("evm_increaseTime", [3_600]);
633635
tx = routerETH.borrowAtMaturity(futurePools(1)[0], parseUnits("5"), parseUnits("5"));
634636
});
635637
it("THEN the tx should revert with Disagreement", async () => {

test/hardhat/2_market.ts

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,19 @@ describe("Market", function () {
4646
penaltyRate = await marketDAI.penaltyRate();
4747

4848
await deploy("InterestRateModel", {
49-
args: [AddressZero, 0, 0, parseUnits("6"), parseUnits("0.7")],
49+
args: [
50+
AddressZero,
51+
0,
52+
0,
53+
parseUnits("6"),
54+
parseUnits("0.7"),
55+
parseUnits("2.5"),
56+
parseUnits("1"),
57+
parseUnits("10"),
58+
parseUnits("0.2"),
59+
parseUnits("0"),
60+
parseUnits("0.5"),
61+
],
5062
from: owner.address,
5163
});
5264
irm = await getContract<InterestRateModel>("InterestRateModel", maria);
@@ -61,6 +73,7 @@ describe("Market", function () {
6173
await weth.deposit({ value: parseUnits("10") });
6274
await weth.approve(marketWETH.address, parseUnits("10"));
6375
}
76+
await provider.send("evm_increaseTime", [3_600]);
6477
});
6578

6679
describe("small positions", () => {
@@ -69,6 +82,7 @@ describe("Market", function () {
6982
await marketDAI.deposit(3, maria.address);
7083
// add liquidity to the maturity
7184
await marketDAI.depositAtMaturity(futurePools(1)[0], 3, 0, maria.address);
85+
await provider.send("evm_increaseTime", [3_600]);
7286
});
7387
it("THEN the Market registers a supply of 3 wei DAI for the account (exposed via accountSnapshot)", async () => {
7488
expect(await marketDAI.maxWithdraw(maria.address)).to.equal(3);
@@ -416,7 +430,19 @@ describe("Market", function () {
416430
describe("GIVEN an interest rate of 2%", () => {
417431
beforeEach(async () => {
418432
const { address } = await deploy("InterestRateModel", {
419-
args: [AddressZero, 0, parseUnits("0.02"), parseUnits("6"), parseUnits("0.7")],
433+
args: [
434+
AddressZero,
435+
0,
436+
parseUnits("0.02"),
437+
parseUnits("6"),
438+
parseUnits("0.7"),
439+
parseUnits("2.5"),
440+
parseUnits("1"),
441+
parseUnits("10"),
442+
parseUnits("0.2"),
443+
parseUnits("0"),
444+
parseUnits("0.5"),
445+
],
420446
from: owner.address,
421447
});
422448
await timelockExecute(owner, marketDAI, "setInterestRateModel", [address]);
@@ -453,7 +479,19 @@ describe("Market", function () {
453479
await auditor.enterMarket(marketWETH.address);
454480

455481
const { address } = await deploy("InterestRateModel", {
456-
args: [AddressZero, 0, 0, parseUnits("1.1"), parseUnits("0.7")],
482+
args: [
483+
AddressZero,
484+
0,
485+
0,
486+
parseUnits("1.1"),
487+
parseUnits("0.7"),
488+
parseUnits("2.5"),
489+
parseUnits("1"),
490+
parseUnits("10"),
491+
parseUnits("0.2"),
492+
parseUnits("0"),
493+
parseUnits("0.5"),
494+
],
457495
from: owner.address,
458496
});
459497
await timelockExecute(owner, marketDAI, "setInterestRateModel", [address]);

test/hardhat/4_liquidity_computation.ts

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,19 @@ describe("Liquidity computations", function () {
6565
}
6666

6767
const { address: irm } = await deploy("InterestRateModel", {
68-
args: [AddressZero, 0, 0, parseUnits("6"), parseUnits("0.7")],
68+
args: [
69+
AddressZero,
70+
0,
71+
0,
72+
parseUnits("6"),
73+
parseUnits("0.7"),
74+
parseUnits("2.5"),
75+
parseUnits("1"),
76+
parseUnits("10"),
77+
parseUnits("0.2"),
78+
parseUnits("0"),
79+
parseUnits("0.5"),
80+
],
6981
from: bob.address,
7082
});
7183
await timelockExecute(multisig, marketDAI, "setInterestRateModel", [irm]);
@@ -83,6 +95,7 @@ describe("Liquidity computations", function () {
8395
describe("GIVEN laura deposits 1k dai to a smart pool", () => {
8496
beforeEach(async () => {
8597
await marketDAI.deposit(parseUnits("1000"), laura.address);
98+
await provider.send("evm_increaseTime", [3_600]);
8699
});
87100

88101
it("THEN lauras liquidity is adjustFactor*collateral - 0.8*1000 == 800, AND she has no shortfall", async () => {
@@ -100,7 +113,19 @@ describe("Liquidity computations", function () {
100113
describe("AND GIVEN a 1% borrow interest rate", () => {
101114
beforeEach(async () => {
102115
const { address: irm } = await deploy("InterestRateModel", {
103-
args: [AddressZero, 0, parseUnits("0.01"), parseUnits("6"), parseUnits("0.7")],
116+
args: [
117+
AddressZero,
118+
0,
119+
parseUnits("0.01"),
120+
parseUnits("6"),
121+
parseUnits("0.7"),
122+
parseUnits("2.5"),
123+
parseUnits("1"),
124+
parseUnits("10"),
125+
parseUnits("0.2"),
126+
parseUnits("0"),
127+
parseUnits("0.5"),
128+
],
104129
from: bob.address,
105130
});
106131
await timelockExecute(multisig, marketDAI, "setInterestRateModel", [irm]);

test/hardhat/5_liquidations.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import futurePools from "./utils/futurePools";
99
const {
1010
constants: { MaxUint256 },
1111
utils: { parseUnits },
12+
provider,
1213
} = ethers;
1314
const nextPoolID = futurePools(3)[2].toNumber();
1415

@@ -65,6 +66,7 @@ describe("Liquidations", function () {
6566
await exactlyEnv.depositMP("DAI", nextPoolID, "65000");
6667
await dai.connect(bob).approve(marketDAI.address, parseUnits("200000"));
6768
await dai.connect(john).approve(marketDAI.address, parseUnits("10000"));
69+
await provider.send("evm_increaseTime", [3_600]);
6870
});
6971

7072
describe("AND GIVEN Alice takes the biggest loan she can (31920 DAI), 31920/0.8=39900", () => {
@@ -316,18 +318,21 @@ describe("Liquidations", function () {
316318

317319
await exactlyEnv.depositSP("WETH", "10");
318320
await exactlyEnv.enterMarket("WETH");
321+
await provider.send("evm_increaseTime", [3_600]);
319322
});
320323
describe("AND GIVEN alice deposits 10k DAI to the smart pool AND borrows USD8k worth of WETH (80% collateralization rate)", () => {
321324
beforeEach(async () => {
322325
exactlyEnv.switchWallet(alice);
323326
await exactlyEnv.depositSP("DAI", "10000");
324327
await exactlyEnv.enterMarket("DAI");
328+
await provider.send("evm_increaseTime", [3_600]);
325329

326330
await exactlyEnv.borrowMP("WETH", futurePools(1)[0].toNumber(), "0.93");
327331
await exactlyEnv.borrowMP("WETH", futurePools(2)[1].toNumber(), "0.93");
328332
});
329333
describe("WHEN WETH price doubles AND john borrows 10k DAI from a maturity pool (all liquidity in smart pool)", () => {
330334
beforeEach(async () => {
335+
await provider.send("evm_increaseTime", [3_600 * 2]);
331336
await exactlyEnv.setPrice(marketETH.address, parseUnits("8000", 8));
332337
exactlyEnv.switchWallet(john);
333338
await exactlyEnv.borrowMP("DAI", futurePools(1)[0].toNumber(), "10000");
@@ -345,6 +350,7 @@ describe("Liquidations", function () {
345350
await dai.mint(john.address, parseUnits("10000"));
346351
await exactlyEnv.depositSP("DAI", "10000");
347352
await eth.connect(john).approve(marketETH.address, parseUnits("1"));
353+
await provider.send("evm_increaseTime", [3_600]);
348354
});
349355
it("WHEN both of alice's positions are liquidated THEN it doesn't revert", async () => {
350356
await expect(marketETH.connect(john).liquidate(alice.address, parseUnits("1"), marketDAI.address)).to.not.be
@@ -376,6 +382,7 @@ describe("Liquidations", function () {
376382

377383
await exactlyEnv.borrowMP("DAI", futurePools(1)[0].toNumber(), "1000");
378384
await exactlyEnv.borrowMP("DAI", futurePools(2)[1].toNumber(), "6000");
385+
await provider.send("evm_increaseTime", [3_600]);
379386
});
380387
describe("WHEN 20 days goes by without payment, WETH price halves AND alice's first borrow is liquidated with a higher amount as repayment", () => {
381388
let johnETHBalanceBefore: BigNumber;
@@ -410,6 +417,7 @@ describe("Liquidations", function () {
410417
await dai.connect(john).approve(marketDAI.address, MaxUint256);
411418
await dai.mint(john.address, parseUnits("100000"));
412419
await marketDAI.connect(john).deposit(parseUnits("100000"), john.address);
420+
await provider.send("evm_increaseTime", [3_600]);
413421

414422
// distribute earnings to accumulator
415423
await exactlyEnv.setBorrowRate("1");

0 commit comments

Comments
 (0)