it.only("should showcase inconsistency", async function () {
const borrowAmount = ethers.parseEther("25");
ā
await lendingPool.connect(user1).borrow(borrowAmount);
ā
let debtAmount = await debtToken.balanceOf(user1.address);
let scaledUsage = await lendingPool.getUserDebt(user1.address);
let delta = debtAmount - scaledUsage;
console.log("User1 debt, scaledUsage, delta on first borrow");
console.table({ debtAmount, scaledUsage, delta });
ā
await ethers.provider.send("evm_increaseTime", [1 * 24 * 60 * 60]);
await ethers.provider.send("evm_mine");
ā
await lendingPool.connect(user1).borrow(borrowAmount);
debtAmount = await debtToken.balanceOf(user1.address);
scaledUsage = await lendingPool.getUserDebt(user1.address);
delta = debtAmount - scaledUsage;
console.log("User1 debt, scaledUsage, delta on second borrow");
console.table({ debtAmount, scaledUsage, delta });
ā
await expect(
lendingPool.connect(user1).repay(debtAmount)
).to.be.revertedWithPanic(0x11);
console.log("Repaying all debt at once failed as expected");
ā
await lendingPool.connect(user1).repay(debtAmount - delta);
ā
debtAmount = await debtToken.balanceOf(user1.address);
scaledUsage = await lendingPool.getUserDebt(user1.address);
delta = debtAmount - scaledUsage;
console.log("User1 debt, scaledUsage, delta after repaying all but delta");
console.table({ debtAmount, scaledUsage, delta });
ā
expect(delta).to.be.gt(0);
expect(delta).to.be.gt(scaledUsage);
});
User1 debt, scaledUsage, delta on first borrow
āāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāā
ā (index) ā Values ā
āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāā¤
ā debtAmount ā 25000000000000000000n ā
ā scaledUsage ā 25000000000000000000n ā
ā delta ā 0n ā
āāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāāāāāāāāāā
User1 debt, scaledUsage, delta on second borrow
āāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāā
ā (index) ā Values ā
āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāā¤
ā debtAmount ā 50003585486944660850n ā
ā scaledUsage ā 50001792679196224555n ā
ā delta ā 1792807748436295n ā
āāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāāāāāāāāāā
Repaying all debt at once failed as expected
User1 debt, scaledUsage, delta after repaying all but delta
āāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā (index) ā Values ā
āāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāā¤
ā debtAmount ā 1792807748436295n ā
ā scaledUsage ā 0n ā
ā delta ā 1792807748436295n ā
āāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāāāāāā
ā should showcase inconsistency (1163ms)