Skip to content

Commit

Permalink
test(hardhat): revert to old tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Rubilmax committed Sep 1, 2023
1 parent 60e6af1 commit c31fb33
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions test/hardhat/Morpho.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { SignerWithAddress } from "@nomicfoundation/hardhat-ethers/signers";
import { mine } from "@nomicfoundation/hardhat-network-helpers";
import { expect } from "chai";
import { AbiCoder, MaxUint256, keccak256, toBigInt } from "ethers";
import hre from "hardhat";
Expand Down Expand Up @@ -109,25 +110,38 @@ describe("Morpho", () => {
});

it("should simulate gas cost [main]", async () => {
await hre.network.provider.send("evm_setAutomine", [false]);
await hre.network.provider.send("evm_setIntervalMining", [0]);

for (let i = 0; i < signers.length; ++i) {
console.log("[main]", i, "/", signers.length);

if (random() < 1 / 2) await mine(1 + Math.floor(random() * 100), { interval: 12 });

const user = signers[i];

let assets = BigInt.WAD * toBigInt(1 + Math.floor(random() * 100));

await morpho.connect(user).supply(marketParams, assets, 0, user.address, "0x");
await morpho.connect(user).withdraw(marketParams, assets / 2n, 0, user.address, user.address);
const totalSupplyAssets = (await morpho.market(id)).totalSupplyAssets;
const totalBorrowAssets = (await morpho.market(id)).totalBorrowAssets;
const liquidity = totalSupplyAssets - totalBorrowAssets;

assets = BigInt.min(assets, liquidity / 2n);

await morpho.connect(user).supplyCollateral(marketParams, assets, user.address, "0x");
await morpho.connect(user).borrow(marketParams, assets / 2n, 0, user.address, user.address);
await morpho.connect(user).repay(marketParams, assets / 4n, 0, user.address, "0x");
await morpho.connect(user).withdrawCollateral(marketParams, assets / 8n, user.address, user.address);
if (random() < 2 / 3) {
Promise.all([
morpho.connect(user).supply(marketParams, assets, 0, user.address, "0x"),
morpho.connect(user).withdraw(marketParams, assets / 2n, 0, user.address, user.address),
]);
} else {
const market = await morpho.market(id);
const liquidity = market.totalSupplyAssets - market.totalBorrowAssets;

assets = assets.min(liquidity / 2n);

if (assets > 0n) {
Promise.all([
morpho.connect(user).supplyCollateral(marketParams, assets, user.address, "0x"),
morpho.connect(user).borrow(marketParams, assets / 2n, 0, user.address, user.address),
morpho.connect(user).repay(marketParams, assets / 4n, 0, user.address, "0x"),
morpho.connect(user).withdrawCollateral(marketParams, assets / 8n, user.address, user.address),
]);
}
}
}

await hre.network.provider.send("evm_setAutomine", [true]);
Expand Down

0 comments on commit c31fb33

Please sign in to comment.