mirror of
				https://github.com/Instadapp/Gelato-automations.git
				synced 2024-07-29 22:28:07 +00:00 
			
		
		
		
	Testing cleaning refactoring
This commit is contained in:
		
							parent
							
								
									2944a4e56e
								
							
						
					
					
						commit
						5f7cc1c79a
					
				|  | @ -15,4 +15,4 @@ address constant DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F; | ||||||
| 
 | 
 | ||||||
| // Insta Pool | // Insta Pool | ||||||
| address constant INSTA_POOL_RESOLVER = 0xa004a5afBa04b74037E9E52bA1f7eb02b5E61509; | address constant INSTA_POOL_RESOLVER = 0xa004a5afBa04b74037E9E52bA1f7eb02b5E61509; | ||||||
| uint256 constant ROUTE_1_3_TOLERANCE = 1005e15; | uint256 constant ROUTE_1_TOLERANCE = 1005e15; | ||||||
|  | @ -3,7 +3,7 @@ pragma solidity 0.7.4; | ||||||
| pragma experimental ABIEncoderV2; | pragma experimental ABIEncoderV2; | ||||||
| 
 | 
 | ||||||
| import {GelatoBytes} from "../../lib/GelatoBytes.sol"; | import {GelatoBytes} from "../../lib/GelatoBytes.sol"; | ||||||
| import {sub, wmul} from "../../vendor/DSMath.sol"; | import {sub} from "../../vendor/DSMath.sol"; | ||||||
| import { | import { | ||||||
|     AccountInterface, |     AccountInterface, | ||||||
|     ConnectorInterface |     ConnectorInterface | ||||||
|  |  | ||||||
|  | @ -3,7 +3,11 @@ pragma solidity 0.7.4; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|     _wCalcCollateralToWithdraw, |     _wCalcCollateralToWithdraw, | ||||||
|     _wCalcDebtToRepay |     _wCalcDebtToRepay, | ||||||
|  |     _getFlashLoanRoute, | ||||||
|  |     _getGasCostMakerToMaker, | ||||||
|  |     _getGasCostMakerToCompound, | ||||||
|  |     _getRealisedDebt | ||||||
| } from "../../functions/gelato/FGelatoDebtBridge.sol"; | } from "../../functions/gelato/FGelatoDebtBridge.sol"; | ||||||
| 
 | 
 | ||||||
| contract FGelatoDebtBridgeMock { | contract FGelatoDebtBridgeMock { | ||||||
|  | @ -38,4 +42,36 @@ contract FGelatoDebtBridgeMock { | ||||||
|                 _wDaiDebtOnMaker |                 _wDaiDebtOnMaker | ||||||
|             ); |             ); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     function getFlashLoanRoute(address _tokenA, uint256 _wTokenADebtToMove) | ||||||
|  |         public | ||||||
|  |         view | ||||||
|  |         returns (uint256) | ||||||
|  |     { | ||||||
|  |         return _getFlashLoanRoute(_tokenA, _wTokenADebtToMove); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function getGasCostMakerToMaker(bool _newVault, uint256 _route) | ||||||
|  |         public | ||||||
|  |         pure | ||||||
|  |         returns (uint256) | ||||||
|  |     { | ||||||
|  |         return _getGasCostMakerToMaker(_newVault, _route); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function getGasCostMakerToCompound(uint256 _route) | ||||||
|  |         public | ||||||
|  |         pure | ||||||
|  |         returns (uint256) | ||||||
|  |     { | ||||||
|  |         return _getGasCostMakerToCompound(_route); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function getRealisedDebt(uint256 _debtToMove) | ||||||
|  |         public | ||||||
|  |         pure | ||||||
|  |         returns (uint256) | ||||||
|  |     { | ||||||
|  |         return _getRealisedDebt(_debtToMove); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,14 +2,14 @@ | ||||||
| pragma solidity 0.7.4; | pragma solidity 0.7.4; | ||||||
| 
 | 
 | ||||||
| import { | import { | ||||||
|     _getMakerVaultDebt, |     _getMakerRawVaultDebt, | ||||||
|     _getMakerVaultCollateralBalance |     _getMakerVaultCollateralBalance | ||||||
| } from "../../functions/dapps/FMaker.sol"; | } from "../../functions/dapps/FMaker.sol"; | ||||||
| 
 | 
 | ||||||
| contract MakerResolver { | contract MakerResolver { | ||||||
|     /// @dev Return Debt in wad of the vault associated to the vaultId. |     /// @dev Return Debt in wad of the vault associated to the vaultId. | ||||||
|     function getMakerVaultDebt(uint256 _vaultId) public view returns (uint256) { |     function getMakerVaultDebt(uint256 _vaultId) public view returns (uint256) { | ||||||
|         return _getMakerVaultDebt(_vaultId); |         return _getMakerRawVaultDebt(_vaultId); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// @dev Return Collateral in wad of the vault associated to the vaultId. |     /// @dev Return Collateral in wad of the vault associated to the vaultId. | ||||||
|  |  | ||||||
|  | @ -21,6 +21,20 @@ function _getMakerVaultDebt(uint256 _vaultId) view returns (uint256 wad) { | ||||||
|     wad = mul(wad, RAY) < rad ? wad + 1 : wad; |     wad = mul(wad, RAY) < rad ? wad + 1 : wad; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function _getMakerRawVaultDebt(uint256 _vaultId) view returns (uint256 tab) { | ||||||
|  |     IMcdManager manager = IMcdManager(MCD_MANAGER); | ||||||
|  | 
 | ||||||
|  |     (bytes32 ilk, address urn) = _getVaultData(manager, _vaultId); | ||||||
|  |     IVat vat = IVat(manager.vat()); | ||||||
|  |     (, uint256 rate, , , ) = vat.ilks(ilk); | ||||||
|  |     (, uint256 art) = vat.urns(ilk, urn); | ||||||
|  | 
 | ||||||
|  |     uint256 rad = mul(art, rate); | ||||||
|  | 
 | ||||||
|  |     tab = rad / RAY; | ||||||
|  |     tab = mul(tab, RAY) < rad ? tab + 1 : tab; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function _getMakerVaultCollateralBalance(uint256 _vaultId) | function _getMakerVaultCollateralBalance(uint256 _vaultId) | ||||||
|     view |     view | ||||||
|     returns (uint256) |     returns (uint256) | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ pragma experimental ABIEncoderV2; | ||||||
| import {add, sub, wmul, wdiv} from "../../vendor/DSMath.sol"; | import {add, sub, wmul, wdiv} from "../../vendor/DSMath.sol"; | ||||||
| import { | import { | ||||||
|     INSTA_POOL_RESOLVER, |     INSTA_POOL_RESOLVER, | ||||||
|     ROUTE_1_3_TOLERANCE |     ROUTE_1_TOLERANCE | ||||||
| } from "../../constants/CInstaDapp.sol"; | } from "../../constants/CInstaDapp.sol"; | ||||||
| import {GAS_COSTS_FOR_FULL_REFINANCE} from "../../constants/CDebtBridge.sol"; | import {GAS_COSTS_FOR_FULL_REFINANCE} from "../../constants/CDebtBridge.sol"; | ||||||
| import { | import { | ||||||
|  | @ -77,6 +77,7 @@ function _getGasCostMakerToMaker(bool _newVault, uint256 _route) | ||||||
|     pure |     pure | ||||||
|     returns (uint256) |     returns (uint256) | ||||||
| { | { | ||||||
|  |     _checkRouteIndex(_route); | ||||||
|     return |     return | ||||||
|         _newVault |         _newVault | ||||||
|             ? add(GAS_COSTS_FOR_FULL_REFINANCE()[_route], 0) |             ? add(GAS_COSTS_FOR_FULL_REFINANCE()[_route], 0) | ||||||
|  | @ -84,9 +85,17 @@ function _getGasCostMakerToMaker(bool _newVault, uint256 _route) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function _getGasCostMakerToCompound(uint256 _route) pure returns (uint256) { | function _getGasCostMakerToCompound(uint256 _route) pure returns (uint256) { | ||||||
|  |     _checkRouteIndex(_route); | ||||||
|     return GAS_COSTS_FOR_FULL_REFINANCE()[_route]; |     return GAS_COSTS_FOR_FULL_REFINANCE()[_route]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function _getRealisedDebt(uint256 _debtToMove) pure returns (uint256) { | function _getRealisedDebt(uint256 _debtToMove) pure returns (uint256) { | ||||||
|     return wmul(_debtToMove, ROUTE_1_3_TOLERANCE); |     return wmul(_debtToMove, ROUTE_1_TOLERANCE); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function _checkRouteIndex(uint256 _route) pure { | ||||||
|  |     require( | ||||||
|  |         _route <= 4, | ||||||
|  |         "FGelatoDebtBridge._getGasCostMakerToMaker: invalid route index" | ||||||
|  |     ); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -274,15 +274,9 @@ describe("Full Debt Bridge refinancing loan from Maker to Compound", function () | ||||||
|         compoundPosition[0].borrowBalanceStoredUser |         compoundPosition[0].borrowBalanceStoredUser | ||||||
|       ); |       ); | ||||||
|     } else { |     } else { | ||||||
|       expect(debtOnMakerBefore).to.be.equal( |       expect( | ||||||
|         compoundPosition[0].borrowBalanceStoredUser |         debtOnMakerBefore.sub(compoundPosition[0].borrowBalanceStoredUser) | ||||||
|       ); |       ).to.be.lt(ethers.utils.parseUnits("2", 0)); | ||||||
| 
 |  | ||||||
|       // We should not have borrowed DAI on maker
 |  | ||||||
|       const debtOnMakerAfter = await contracts.makerResolver.getMakerVaultDebt( |  | ||||||
|         vaultId |  | ||||||
|       ); |  | ||||||
|       expect(debtOnMakerAfter).to.be.equal(ethers.constants.Zero); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 |     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 | ||||||
|  | @ -292,12 +286,16 @@ describe("Full Debt Bridge refinancing loan from Maker to Compound", function () | ||||||
|       ) |       ) | ||||||
|     ).to.be.lt(ethers.utils.parseUnits("1", 12)); |     ).to.be.lt(ethers.utils.parseUnits("1", 12)); | ||||||
| 
 | 
 | ||||||
|     const collateralOnMakerAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( |     const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( | ||||||
|       vaultId |       vaultId | ||||||
|     ); // in Ether.
 |     ); // in Ether.
 | ||||||
|  |     const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt( | ||||||
|  |       vaultId | ||||||
|  |     ); | ||||||
| 
 | 
 | ||||||
|     // We should not have deposited ether on it.
 |     // We should not have deposited ether or borrowed DAI on maker.
 | ||||||
|     expect(collateralOnMakerAfter).to.be.equal(ethers.constants.Zero); |     expect(collateralOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
|  |     expect(debtOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
| 
 | 
 | ||||||
|     // DSA contain 1000 DAI
 |     // DSA contain 1000 DAI
 | ||||||
|     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( |     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( | ||||||
|  |  | ||||||
|  | @ -275,12 +275,6 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat | ||||||
|       expect(debtOnMakerBefore).to.be.lte(debtOnMakerVaultB); |       expect(debtOnMakerBefore).to.be.lte(debtOnMakerVaultB); | ||||||
|     } else { |     } else { | ||||||
|       expect(debtOnMakerBefore).to.be.equal(debtOnMakerVaultB); |       expect(debtOnMakerBefore).to.be.equal(debtOnMakerVaultB); | ||||||
| 
 |  | ||||||
|       // We should not have borrowed DAI on maker
 |  | ||||||
|       const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt( |  | ||||||
|         vaultAId |  | ||||||
|       ); |  | ||||||
|       expect(debtOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 |     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 | ||||||
|  | @ -289,9 +283,13 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B with vault creat | ||||||
|     const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( |     const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( | ||||||
|       vaultAId |       vaultAId | ||||||
|     ); // in Ether.
 |     ); // in Ether.
 | ||||||
|  |     const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt( | ||||||
|  |       vaultAId | ||||||
|  |     ); | ||||||
| 
 | 
 | ||||||
|     // We should not have deposited ether on it.
 |     // We should not have deposited ether or borrowed DAI on maker.
 | ||||||
|     expect(collateralOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); |     expect(collateralOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
|  |     expect(debtOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
| 
 | 
 | ||||||
|     // DSA has maximum 2 wei DAI in it due to maths inaccuracies
 |     // DSA has maximum 2 wei DAI in it due to maths inaccuracies
 | ||||||
|     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( |     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( | ||||||
|  |  | ||||||
|  | @ -275,12 +275,6 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () { | ||||||
|       expect(debtOnMakerBefore).to.be.lte(debtOnMakerVaultB); |       expect(debtOnMakerBefore).to.be.lte(debtOnMakerVaultB); | ||||||
|     } else { |     } else { | ||||||
|       expect(debtOnMakerBefore).to.be.equal(debtOnMakerVaultB); |       expect(debtOnMakerBefore).to.be.equal(debtOnMakerVaultB); | ||||||
| 
 |  | ||||||
|       // We should not have borrowed DAI on maker
 |  | ||||||
|       const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt( |  | ||||||
|         vaultAId |  | ||||||
|       ); |  | ||||||
|       expect(debtOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 |     // Estimated amount of collateral should be equal to the actual one read on compound contracts
 | ||||||
|  | @ -289,9 +283,13 @@ describe("Full Debt Bridge refinancing loan from ETH-A to ETH-B", function () { | ||||||
|     const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( |     const collateralOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultCollateralBalance( | ||||||
|       vaultAId |       vaultAId | ||||||
|     ); // in Ether.
 |     ); // in Ether.
 | ||||||
|  |     const debtOnMakerOnVaultAAfter = await contracts.makerResolver.getMakerVaultDebt( | ||||||
|  |       vaultAId | ||||||
|  |     ); | ||||||
| 
 | 
 | ||||||
|     // We should not have deposited ether on it.
 |     // We should not have deposited ether or borrowed DAI on maker.
 | ||||||
|     expect(collateralOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); |     expect(collateralOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
|  |     expect(debtOnMakerOnVaultAAfter).to.be.equal(ethers.constants.Zero); | ||||||
| 
 | 
 | ||||||
|     // DSA has maximum 2 wei DAI in it due to maths inaccuracies
 |     // DSA has maximum 2 wei DAI in it due to maths inaccuracies
 | ||||||
|     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( |     expect(await contracts.DAI.balanceOf(contracts.dsa.address)).to.be.equal( | ||||||
|  |  | ||||||
							
								
								
									
										175
									
								
								test/unit_tests/5_FGelatoDebtBridge.test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								test/unit_tests/5_FGelatoDebtBridge.test.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,175 @@ | ||||||
|  | const {expect} = require("chai"); | ||||||
|  | const hre = require("hardhat"); | ||||||
|  | const {deployments, ethers} = hre; | ||||||
|  | 
 | ||||||
|  | const InstaPoolResolver = require("../../artifacts/contracts/interfaces/InstaDapp/resolvers/IInstaPoolResolver.sol/IInstaPoolResolver.json"); | ||||||
|  | const DAI = hre.network.config.DAI; | ||||||
|  | 
 | ||||||
|  | describe("Debt Partial Refinance Math Unit Test", function () { | ||||||
|  |   this.timeout(0); | ||||||
|  |   if (hre.network.name !== "hardhat") { | ||||||
|  |     console.error("Test Suite is meant to be run on hardhat only"); | ||||||
|  |     process.exit(1); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   let fGelatoDebtBridgeMock; | ||||||
|  |   let instaPoolResolver; | ||||||
|  |   beforeEach(async function () { | ||||||
|  |     await deployments.fixture(); | ||||||
|  | 
 | ||||||
|  |     instaPoolResolver = await ethers.getContractAt( | ||||||
|  |       InstaPoolResolver.abi, | ||||||
|  |       hre.network.config.InstaPoolResolver | ||||||
|  |     ); | ||||||
|  | 
 | ||||||
|  |     fGelatoDebtBridgeMock = await ethers.getContract("FGelatoDebtBridgeMock"); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getFlashLoanRoute should return 0 when dydx has enough liquidity", async function () { | ||||||
|  |     // const rData = instaPoolResolver.getTokenLimit(DAI);
 | ||||||
|  |     const daiAmtToBorrow = ethers.utils.parseUnits("1000", 18); | ||||||
|  | 
 | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getFlashLoanRoute(DAI, daiAmtToBorrow) | ||||||
|  |     ).to.be.equal(0); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getFlashLoanRoute should return 1 when maker has enough liquidity and cheaper protocol didn't have enough liquidity", async function () { | ||||||
|  |     const rData = await instaPoolResolver.getTokenLimit(DAI); | ||||||
|  |     const daiAmtToBorrow = ethers.utils.parseUnits("1000", 18).add(rData.dydx); | ||||||
|  | 
 | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getFlashLoanRoute(DAI, daiAmtToBorrow) | ||||||
|  |     ).to.be.equal(1); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getFlashLoanRoute should return 2 when compound has enough liquidity and cheaper protocol didn't have enough liquidity", async function () { | ||||||
|  |     const rData = await instaPoolResolver.getTokenLimit(DAI); | ||||||
|  |     const daiAmtToBorrow = ethers.utils.parseUnits("1000", 18).add(rData.maker); | ||||||
|  | 
 | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getFlashLoanRoute(DAI, daiAmtToBorrow) | ||||||
|  |     ).to.be.equal(2); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   // Seems aave has less liquidity than compound, is it always the case? If yes, why we should use this protocol.
 | ||||||
|  | 
 | ||||||
|  |   //   it("getFlashLoanRoute should return 3 when aave has enough liquidity and cheaper protocol didn't have enough liquidity", async function () {
 | ||||||
|  |   //     const rData = await instaPoolResolver.getTokenLimit(DAI);
 | ||||||
|  |   //     console.log(String(rData.dydx));
 | ||||||
|  |   //     console.log(String(rData.maker));
 | ||||||
|  |   //     console.log(String(rData.compound));
 | ||||||
|  |   //     console.log(String(rData.aave));
 | ||||||
|  |   //     const daiAmtToBorrow = ethers.utils.parseUnits("1000", 18).add(rData.compound);
 | ||||||
|  | 
 | ||||||
|  |   //     expect(await fGelatoDebtBridgeMock.getFlashLoanRoute(DAI, daiAmtToBorrow)).to.be.equal(3);
 | ||||||
|  |   //   })
 | ||||||
|  | 
 | ||||||
|  |   it("getFlashLoanRoute should revert with FGelatoDebtBridge._getFlashLoanRoute: illiquid", async function () { | ||||||
|  |     const rData = await instaPoolResolver.getTokenLimit(DAI); | ||||||
|  |     const daiAmtToBorrow = ethers.utils | ||||||
|  |       .parseUnits("1000", 18) | ||||||
|  |       .add(rData.compound); | ||||||
|  | 
 | ||||||
|  |     await expect( | ||||||
|  |       fGelatoDebtBridgeMock.getFlashLoanRoute(DAI, daiAmtToBorrow) | ||||||
|  |     ).to.be.revertedWith("FGelatoDebtBridge._getFlashLoanRoute: illiquid"); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 2519000 gas limit for route 0 (Dydx) and new vault", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(true, 0) | ||||||
|  |     ).to.be.equal(2519000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 2519000 gas limit for route 0 (Dydx)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(false, 0) | ||||||
|  |     ).to.be.equal(2519000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 3140500 gas limit for route 1 (maker) and new vault", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(true, 1) | ||||||
|  |     ).to.be.equal(3140500); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 3140500 gas limit for route 1 (maker)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(false, 1) | ||||||
|  |     ).to.be.equal(3140500); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 3971000 gas limit for route 2 (compound) and new vault", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(true, 2) | ||||||
|  |     ).to.be.equal(3971000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 3971000 gas limit for route 2 (compound)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(false, 2) | ||||||
|  |     ).to.be.equal(3971000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 4345000 gas limit for route 3 (aave) and new vault", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(true, 3) | ||||||
|  |     ).to.be.equal(4345000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should return 4345000 gas limit for route 3 (aave)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToMaker(false, 3) | ||||||
|  |     ).to.be.equal(4345000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToMaker should revert with invalid route index when the inputed route exceed 4", async function () { | ||||||
|  |     await expect( | ||||||
|  |       fGelatoDebtBridgeMock.getGasCostMakerToMaker(true, 5) | ||||||
|  |     ).to.be.revertedWith( | ||||||
|  |       "FGelatoDebtBridge._getGasCostMakerToMaker: invalid route index" | ||||||
|  |     ); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToCompound should return 2519000 gas limit for route 0 (Dydx)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToCompound(0) | ||||||
|  |     ).to.be.equal(2519000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToCompound should return 3140500 gas limit for route 1 (Maker)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToCompound(1) | ||||||
|  |     ).to.be.equal(3140500); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToCompound should return 3971000 gas limit for route 2 (Compound)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToCompound(2) | ||||||
|  |     ).to.be.equal(3971000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToCompound should return 4345000 gas limit for route 3 (Aave)", async function () { | ||||||
|  |     expect( | ||||||
|  |       await fGelatoDebtBridgeMock.getGasCostMakerToCompound(3) | ||||||
|  |     ).to.be.equal(4345000); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getGasCostMakerToCompound should revert with invalid route index when the inputed route exceed 4", async function () { | ||||||
|  |     await expect( | ||||||
|  |       fGelatoDebtBridgeMock.getGasCostMakerToCompound(5) | ||||||
|  |     ).to.be.revertedWith( | ||||||
|  |       "FGelatoDebtBridge._getGasCostMakerToMaker: invalid route index" | ||||||
|  |     ); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   it("getRealisedDebt should increase the inputed uint by 0,5%", async function () { | ||||||
|  |     const debtToMove = ethers.utils.parseUnits("1000", 18); | ||||||
|  |     const expectedRealisedDebt = ethers.utils.parseUnits("1005", 18); | ||||||
|  | 
 | ||||||
|  |     expect(await fGelatoDebtBridgeMock.getRealisedDebt(debtToMove)).to.be.equal( | ||||||
|  |       expectedRealisedDebt | ||||||
|  |     ); | ||||||
|  |   }); | ||||||
|  | }); | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Shivva
						Shivva