Deal with lack of precision during for some routes

This commit is contained in:
Shivva 2020-11-17 11:36:02 +01:00 committed by Luis Schliesske
parent c36a988795
commit a79a785fa7
4 changed files with 66 additions and 15 deletions

View File

@ -3,15 +3,24 @@ pragma solidity 0.7.4;
import {
_getMakerRawVaultDebt,
_getMakerVaultDebt,
_getMakerVaultCollateralBalance
} from "../../functions/dapps/FMaker.sol";
contract MakerResolver {
/// @dev Return Debt in wad of the vault associated to the vaultId.
function getMakerVaultDebt(uint256 _vaultId) public view returns (uint256) {
function getMakerVaultRawDebt(uint256 _vaultId)
public
view
returns (uint256)
{
return _getMakerRawVaultDebt(_vaultId);
}
function getMakerVaultDebt(uint256 _vaultId) public view returns (uint256) {
return _getMakerVaultDebt(_vaultId);
}
/// @dev Return Collateral in wad of the vault associated to the vaultId.
function getMakerVaultCollateralBalance(uint256 _vaultId)
public

View File

@ -197,7 +197,7 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat
// by a debt refinancing in compound.
//#region EXPECTED OUTCOME
const debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
let debtOnMakerBefore = await contracts.makerResolver.getMakerVaultRawDebt(
vaultAId
);
@ -207,6 +207,12 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat
contracts.instaPoolResolver
);
if (route !== 1) {
debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
vaultAId
);
}
const gasCost = await getGasCostForFullRefinance(route);
const gasFeesPaidFromCol = ethers.BigNumber.from(gasCost).mul(
@ -253,9 +259,17 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat
let vaultBId = String(cdps.ids[1]);
expect(cdps.ids[1].isZero()).to.be.false;
const debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
let debtOnMakerVaultB;
if (route === 1) {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultRawDebt(
vaultBId
);
} else {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
}
const pricedCollateralOnVaultB = await contracts.makerResolver.getMakerVaultCollateralBalance(
vaultBId
);
@ -283,7 +297,7 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat
const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance(
vaultAId
); // in Ether.
const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt(
const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultRawDebt(
vaultAId
);

View File

@ -197,7 +197,7 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () {
// by a debt refinancing in compound.
//#region EXPECTED OUTCOME
const debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
let debtOnMakerBefore = await contracts.makerResolver.getMakerVaultRawDebt(
vaultAId
);
@ -207,6 +207,12 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () {
contracts.instaPoolResolver
);
if (route !== 1) {
debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
vaultAId
);
}
const gasCost = await getGasCostForFullRefinance(route);
const gasFeesPaidFromCol = ethers.BigNumber.from(gasCost).mul(
@ -253,9 +259,17 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () {
let vaultBId = String(cdps.ids[1]);
expect(cdps.ids[1].isZero()).to.be.false;
const debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
let debtOnMakerVaultB;
if (route === 1) {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultRawDebt(
vaultBId
);
} else {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
}
const pricedCollateralOnVaultB = await contracts.makerResolver.getMakerVaultCollateralBalance(
vaultBId
);
@ -283,7 +297,7 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () {
const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance(
vaultAId
); // in Ether.
const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt(
const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultRawDebt(
vaultAId
);

View File

@ -197,7 +197,7 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B For Gas Measurem
// by a debt refinancing in compound.
//#region EXPECTED OUTCOME
const debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
let debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
vaultAId
);
@ -207,6 +207,12 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B For Gas Measurem
contracts.instaPoolResolver
);
if (route !== 1) {
debtOnMakerBefore = await contracts.makerResolver.getMakerVaultDebt(
vaultAId
);
}
const gasCost = await getGasCostForFullRefinance(route);
const gasFeesPaidFromCol = ethers.BigNumber.from(gasCost).mul(
@ -253,9 +259,17 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B For Gas Measurem
let vaultBId = String(cdps.ids[1]);
expect(cdps.ids[1].isZero()).to.be.false;
const debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
let debtOnMakerVaultB;
if (route === 1) {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultRawDebt(
vaultBId
);
} else {
debtOnMakerVaultB = await contracts.makerResolver.getMakerVaultDebt(
vaultBId
);
}
const pricedCollateralOnVaultB = await contracts.makerResolver.getMakerVaultCollateralBalance(
vaultBId
);