mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
- Added ganache as buidler network option
This commit is contained in:
parent
2379fe7ae7
commit
84466f11b5
|
@ -10,13 +10,14 @@ usePlugin("buidler-typechain");
|
||||||
usePlugin("solidity-coverage");
|
usePlugin("solidity-coverage");
|
||||||
usePlugin("@nomiclabs/buidler-waffle");
|
usePlugin("@nomiclabs/buidler-waffle");
|
||||||
usePlugin("@nomiclabs/buidler-etherscan");
|
usePlugin("@nomiclabs/buidler-etherscan");
|
||||||
|
usePlugin("@nomiclabs/buidler-ganache");
|
||||||
|
|
||||||
["misc", "deployments", "migrations"].forEach((folder) => {
|
["misc", "deployments", "migrations"].forEach((folder) => {
|
||||||
const tasksPath = path.join(__dirname, "tasks", folder);
|
const tasksPath = path.join(__dirname, "tasks", folder);
|
||||||
fs.readdirSync(tasksPath).forEach((task) => require(`${tasksPath}/${task}`));
|
fs.readdirSync(tasksPath).forEach((task) => require(`${tasksPath}/${task}`));
|
||||||
});
|
});
|
||||||
|
|
||||||
const DEFAULT_BLOCK_GAS_LIMIT = 9500000;
|
const DEFAULT_BLOCK_GAS_LIMIT = 10000000;
|
||||||
const DEFAULT_GAS_PRICE = 10;
|
const DEFAULT_GAS_PRICE = 10;
|
||||||
const HARDFORK = "istanbul";
|
const HARDFORK = "istanbul";
|
||||||
const INFURA_KEY = "";
|
const INFURA_KEY = "";
|
||||||
|
@ -84,6 +85,10 @@ const config: BuidlerConfig = {
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
ganache: {
|
||||||
|
blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT,
|
||||||
|
url: "http://localhost:8545",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,15 @@ services:
|
||||||
working_dir: /src
|
working_dir: /src
|
||||||
command: npm run run-env
|
command: npm run run-env
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/src
|
- ./:/src
|
||||||
|
|
||||||
|
ganache:
|
||||||
|
image: trufflesuite/ganache-cli:next
|
||||||
|
ports:
|
||||||
|
- "8545:8545"
|
||||||
|
command: [
|
||||||
|
"ganache-cli",
|
||||||
|
"--gasLimit", "10000000",
|
||||||
|
"--mnemonic", "frame post antenna before valid claw crunch clap travel buyer inch act",
|
||||||
|
"--hardfork", "istanbul"
|
||||||
|
]
|
|
@ -155,9 +155,7 @@ export const deployLendingPoolCore = async () => {
|
||||||
linkedBytecode
|
linkedBytecode
|
||||||
);
|
);
|
||||||
|
|
||||||
const lendingPoolCore = await LendingPoolCoreFactory.deploy({
|
const lendingPoolCore = await LendingPoolCoreFactory.deploy();
|
||||||
gasLimit: 9500000,
|
|
||||||
});
|
|
||||||
return (await lendingPoolCore.deployed()) as LendingPoolCore;
|
return (await lendingPoolCore.deployed()) as LendingPoolCore;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
18
package-lock.json
generated
18
package-lock.json
generated
|
@ -198,6 +198,18 @@
|
||||||
"request-promise": "^4.2.4"
|
"request-promise": "^4.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@nomiclabs/buidler-ganache": {
|
||||||
|
"version": "1.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nomiclabs/buidler-ganache/-/buidler-ganache-1.3.3.tgz",
|
||||||
|
"integrity": "sha512-5dReZ3qqkA8Y46qeuw4gM3hzyzTB8DPvc5xTz7TKSkCHE5iwe4mMBLjyJ0ZwVaxmQvr4zxkNC9LsQ8JVC/j6IA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"ganache-core": "^2.7.0",
|
||||||
|
"ts-essentials": "^2.0.7",
|
||||||
|
"ts-interface-checker": "^0.1.9"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@nomiclabs/buidler-waffle": {
|
"@nomiclabs/buidler-waffle": {
|
||||||
"version": "1.3.4",
|
"version": "1.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@nomiclabs/buidler-waffle/-/buidler-waffle-1.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/@nomiclabs/buidler-waffle/-/buidler-waffle-1.3.4.tgz",
|
||||||
|
@ -22832,6 +22844,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ts-interface-checker": {
|
||||||
|
"version": "0.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.11.tgz",
|
||||||
|
"integrity": "sha512-Jx6cFBiuCQrRl3CgoIOamIE/toZ8jQJbIlsLGpkBiUpCEUyFcyZ2pvjP8kSXIcz8V5v/murgm/5EfIQapUmh6A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"ts-node": {
|
"ts-node": {
|
||||||
"version": "8.10.2",
|
"version": "8.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
|
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
"@nomiclabs/buidler": "1.3.5",
|
"@nomiclabs/buidler": "1.3.5",
|
||||||
"@nomiclabs/buidler-ethers": "1.3.3",
|
"@nomiclabs/buidler-ethers": "1.3.3",
|
||||||
"@nomiclabs/buidler-etherscan": "1.3.3",
|
"@nomiclabs/buidler-etherscan": "1.3.3",
|
||||||
|
"@nomiclabs/buidler-ganache": "^1.3.3",
|
||||||
"@nomiclabs/buidler-waffle": "1.3.4",
|
"@nomiclabs/buidler-waffle": "1.3.4",
|
||||||
"@openzeppelin/contracts": "3.0.1",
|
"@openzeppelin/contracts": "3.0.1",
|
||||||
"@typechain/ethers-v4": "1.0.0",
|
"@typechain/ethers-v4": "1.0.0",
|
||||||
|
|
|
@ -5,17 +5,32 @@ module.exports = {
|
||||||
{
|
{
|
||||||
secretKey:
|
secretKey:
|
||||||
"0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122",
|
"0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122",
|
||||||
balance: toWad(1_000_000),
|
balance: toWad("1000000"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
secretKey:
|
secretKey:
|
||||||
"0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb",
|
"0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb",
|
||||||
balance: toWad(1_000_000),
|
balance: toWad("1000000"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
secretKey:
|
secretKey:
|
||||||
"0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569",
|
"0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569",
|
||||||
balance: toWad(1_000_000),
|
balance: toWad("1000000"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
secretKey:
|
||||||
|
"0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131",
|
||||||
|
balance: toWad("1000000"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
secretKey:
|
||||||
|
"0x87630b2d1de0fbd5044eb6891b3d9d98c34c8d310c852f98550ba774480e47cc",
|
||||||
|
balance: toWad("1000000"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
secretKey:
|
||||||
|
"0x275cc4a2bfd4f612625204a20a2280ab53a6da2d14860c47a9f5affe58ad86d4",
|
||||||
|
balance: toWad("1000000"),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,10 +30,11 @@ import {
|
||||||
getLendingPool,
|
getLendingPool,
|
||||||
insertContractAddressInDb,
|
insertContractAddressInDb,
|
||||||
deployAaveProtocolTestHelpers,
|
deployAaveProtocolTestHelpers,
|
||||||
|
getEthersSigners,
|
||||||
} from "../helpers/contracts-helpers";
|
} from "../helpers/contracts-helpers";
|
||||||
import {LendingPoolAddressesProvider} from "../types/LendingPoolAddressesProvider";
|
import {LendingPoolAddressesProvider} from "../types/LendingPoolAddressesProvider";
|
||||||
import {evmSnapshot} from "../helpers/misc-utils";
|
import {evmSnapshot} from "../helpers/misc-utils";
|
||||||
import {Wallet, ContractTransaction, ethers} from "ethers";
|
import {Wallet, ContractTransaction, ethers, Signer} from "ethers";
|
||||||
import {
|
import {
|
||||||
TokenContractId,
|
TokenContractId,
|
||||||
eContractid,
|
eContractid,
|
||||||
|
@ -65,7 +66,7 @@ import {LendingRateOracle} from "../types/LendingRateOracle";
|
||||||
import {LendingPoolCore} from "../types/LendingPoolCore";
|
import {LendingPoolCore} from "../types/LendingPoolCore";
|
||||||
import {LendingPoolConfigurator} from "../types/LendingPoolConfigurator";
|
import {LendingPoolConfigurator} from "../types/LendingPoolConfigurator";
|
||||||
|
|
||||||
const deployAllMockTokens = async (deployer: Wallet) => {
|
const deployAllMockTokens = async (deployer: Signer) => {
|
||||||
const tokens: {[symbol: string]: MockContract | MintableErc20} = {};
|
const tokens: {[symbol: string]: MockContract | MintableErc20} = {};
|
||||||
|
|
||||||
for (const tokenSymbol of Object.keys(TokenContractId)) {
|
for (const tokenSymbol of Object.keys(TokenContractId)) {
|
||||||
|
@ -347,9 +348,9 @@ const enableReservesAsCollateral = async (
|
||||||
|
|
||||||
const waitForTx = async (tx: ContractTransaction) => await tx.wait();
|
const waitForTx = async (tx: ContractTransaction) => await tx.wait();
|
||||||
|
|
||||||
const buildTestEnv = async (deployer: Wallet, secondaryWallet: Wallet) => {
|
const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
|
||||||
console.time("setup");
|
console.time("setup");
|
||||||
const lendingPoolManager = deployer.address;
|
const lendingPoolManager = await deployer.getAddress();
|
||||||
|
|
||||||
const mockTokens = await deployAllMockTokens(deployer);
|
const mockTokens = await deployAllMockTokens(deployer);
|
||||||
|
|
||||||
|
@ -579,7 +580,7 @@ const buildTestEnv = async (deployer: Wallet, secondaryWallet: Wallet) => {
|
||||||
);
|
);
|
||||||
|
|
||||||
const {receivers, percentages} = getFeeDistributionParamsCommon(
|
const {receivers, percentages} = getFeeDistributionParamsCommon(
|
||||||
deployer.address
|
lendingPoolManager
|
||||||
);
|
);
|
||||||
|
|
||||||
await deployMockOneSplit(tokensAddressesWithoutUsd.LEND);
|
await deployMockOneSplit(tokensAddressesWithoutUsd.LEND);
|
||||||
|
@ -599,7 +600,7 @@ const buildTestEnv = async (deployer: Wallet, secondaryWallet: Wallet) => {
|
||||||
await waitForTx(
|
await waitForTx(
|
||||||
await tokenDistributorProxy.initialize(
|
await tokenDistributorProxy.initialize(
|
||||||
tokenDistributorImpl.address,
|
tokenDistributorImpl.address,
|
||||||
secondaryWallet.address,
|
await secondaryWallet.getAddress(),
|
||||||
implementationParams
|
implementationParams
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -627,8 +628,7 @@ const buildTestEnv = async (deployer: Wallet, secondaryWallet: Wallet) => {
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await rawBRE.run("set-bre");
|
await rawBRE.run("set-bre");
|
||||||
const deployer = new ethers.Wallet(accounts[0].secretKey);
|
const [deployer, secondaryWallet] = await getEthersSigners();
|
||||||
const secondaryWallet = new ethers.Wallet(accounts[1].secretKey);
|
|
||||||
await buildTestEnv(deployer, secondaryWallet);
|
await buildTestEnv(deployer, secondaryWallet);
|
||||||
console.log("\n***************");
|
console.log("\n***************");
|
||||||
console.log("Setup and snapshot finished");
|
console.log("Setup and snapshot finished");
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import {MockProvider} from "ethereum-waffle";
|
import {evmRevert} from "../helpers/misc-utils";
|
||||||
import {evmRevert, BRE} from "../helpers/misc-utils";
|
|
||||||
import {
|
import {
|
||||||
TEST_SNAPSHOT_ID,
|
TEST_SNAPSHOT_ID,
|
||||||
APPROVAL_AMOUNT_LENDING_POOL_CORE,
|
APPROVAL_AMOUNT_LENDING_POOL_CORE,
|
||||||
|
MOCK_ETH_ADDRESS,
|
||||||
|
oneEther,
|
||||||
} from "../helpers/constants";
|
} from "../helpers/constants";
|
||||||
import {AToken} from "../types/AToken";
|
import {AToken} from "../types/AToken";
|
||||||
import {MintableErc20} from "../types/MintableErc20";
|
import {MintableErc20} from "../types/MintableErc20";
|
||||||
|
@ -18,20 +19,16 @@ import {
|
||||||
getLendingPool,
|
getLendingPool,
|
||||||
} from "../helpers/contracts-helpers";
|
} from "../helpers/contracts-helpers";
|
||||||
import {expect} from "chai";
|
import {expect} from "chai";
|
||||||
import {ethers, Wallet, Signer} from "ethers";
|
import {Signer} from "ethers";
|
||||||
// @ts-ignore
|
import {BigNumber as EthersBigNumber} from "ethers/utils";
|
||||||
import {accounts} from "../test-wallets.js";
|
|
||||||
|
|
||||||
describe("AToken: Transfer", () => {
|
describe("AToken: Transfer", () => {
|
||||||
let wallets: Signer[];
|
|
||||||
let deployer: Signer;
|
let deployer: Signer;
|
||||||
let users: Signer[];
|
let users: Signer[];
|
||||||
let _aDai: AToken;
|
let _aDai: AToken;
|
||||||
let _dai: MintableErc20;
|
let _dai: MintableErc20;
|
||||||
let _lendingPool: LendingPool;
|
let _lendingPool: LendingPool;
|
||||||
let _lendingPoolCore: LendingPoolCore;
|
let _lendingPoolCore: LendingPoolCore;
|
||||||
const NOT_LENDING_POOL_MSG =
|
|
||||||
"The caller of this function must be a lending pool";
|
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await evmRevert(TEST_SNAPSHOT_ID);
|
await evmRevert(TEST_SNAPSHOT_ID);
|
||||||
|
@ -70,13 +67,11 @@ describe("AToken: Transfer", () => {
|
||||||
.connect(users[0])
|
.connect(users[0])
|
||||||
.mint(await convertToCurrencyDecimals(_dai.address, "1000"));
|
.mint(await convertToCurrencyDecimals(_dai.address, "1000"));
|
||||||
|
|
||||||
console.log(_lendingPoolCore.address);
|
console.time("approve()");
|
||||||
|
|
||||||
console.time("approve");
|
|
||||||
await _dai
|
await _dai
|
||||||
.connect(users[0])
|
.connect(users[0])
|
||||||
.approve(_lendingPoolCore.address, APPROVAL_AMOUNT_LENDING_POOL_CORE);
|
.approve(_lendingPoolCore.address, APPROVAL_AMOUNT_LENDING_POOL_CORE);
|
||||||
console.timeEnd("approve");
|
console.timeEnd("approve()");
|
||||||
|
|
||||||
//user 1 deposits 1000 DAI
|
//user 1 deposits 1000 DAI
|
||||||
const amountDAItoDeposit = await convertToCurrencyDecimals(
|
const amountDAItoDeposit = await convertToCurrencyDecimals(
|
||||||
|
@ -84,11 +79,11 @@ describe("AToken: Transfer", () => {
|
||||||
"1000"
|
"1000"
|
||||||
);
|
);
|
||||||
|
|
||||||
console.time("getaddress");
|
console.time("deposit()");
|
||||||
await _lendingPool
|
await _lendingPool
|
||||||
.connect(users[0])
|
.connect(users[0])
|
||||||
.deposit(_dai.address, amountDAItoDeposit, "0");
|
.deposit(_dai.address, amountDAItoDeposit, "0");
|
||||||
console.timeEnd("getaddress");
|
console.timeEnd("deposit()");
|
||||||
|
|
||||||
await _aDai
|
await _aDai
|
||||||
.connect(users[0])
|
.connect(users[0])
|
||||||
|
@ -107,51 +102,89 @@ describe("AToken: Transfer", () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// it('User 1 redirects interest to user 2, transfers 500 DAI back to user 0', async () => {
|
it("User 1 redirects interest to user 2, transfers 500 DAI back to user 0", async () => {
|
||||||
|
console.time("redirectInterest");
|
||||||
|
await _aDai
|
||||||
|
.connect(users[1])
|
||||||
|
.redirectInterestStream(await users[2].getAddress());
|
||||||
|
console.timeEnd("redirectInterest");
|
||||||
|
|
||||||
// await _aDai.redirectInterestStream(await users[2].getAddress());
|
const aDAIRedirected = await convertToCurrencyDecimals(
|
||||||
|
_dai.address,
|
||||||
|
"1000"
|
||||||
|
);
|
||||||
|
|
||||||
// const aDAIRedirected = await convertToCurrencyDecimals(_DAI.address, '1000');
|
const aDAItoTransfer = await convertToCurrencyDecimals(_dai.address, "500");
|
||||||
|
|
||||||
// const aDAItoTransfer = await convertToCurrencyDecimals(_DAI.address, '500');
|
const user2RedirectedBalanceBefore = await _aDai.getRedirectedBalance(
|
||||||
|
await users[2].getAddress()
|
||||||
|
);
|
||||||
|
expect(user2RedirectedBalanceBefore.toString()).to.be.equal(
|
||||||
|
aDAIRedirected,
|
||||||
|
"Invalid redirected balance for user 2 before transfer"
|
||||||
|
);
|
||||||
|
|
||||||
// const user2RedirectedBalanceBefore = await _aDAI.getRedirectedBalance(users[2])
|
await _aDai
|
||||||
// expect(user2RedirectedBalanceBefore.toString()).to.be.equal(aDAIRedirected, "Invalid redirected balance for user 2 before transfer")
|
.connect(users[1])
|
||||||
|
.transfer(await users[0].getAddress(), aDAItoTransfer);
|
||||||
|
|
||||||
// await _aDAI.transfer(users[0], aDAItoTransfer, {from: users[1]})
|
const user2RedirectedBalanceAfter = await _aDai.getRedirectedBalance(
|
||||||
|
await users[2].getAddress()
|
||||||
|
);
|
||||||
|
const user1RedirectionAddress = await _aDai.getInterestRedirectionAddress(
|
||||||
|
await users[1].getAddress()
|
||||||
|
);
|
||||||
|
|
||||||
// const user2RedirectedBalanceAfter = await _aDAI.getRedirectedBalance(users[2])
|
expect(user2RedirectedBalanceAfter.toString()).to.be.equal(
|
||||||
// const user1RedirectionAddress = await _aDAI.getInterestRedirectionAddress(users[1])
|
aDAItoTransfer,
|
||||||
|
"Invalid redirected balance for user 2 after transfer"
|
||||||
|
);
|
||||||
|
expect(user1RedirectionAddress.toString()).to.be.equal(
|
||||||
|
await users[2].getAddress(),
|
||||||
|
"Invalid redirection address for user 1"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
// expect(user2RedirectedBalanceAfter.toString()).to.be.equal(aDAItoTransfer, "Invalid redirected balance for user 2 after transfer")
|
it("User 0 transfers back to user 1", async () => {
|
||||||
// expect(user1RedirectionAddress.toString()).to.be.equal(users[2], "Invalid redirection address for user 1")
|
const aDAItoTransfer = await convertToCurrencyDecimals(_dai.address, "500");
|
||||||
|
|
||||||
// });
|
await _aDai
|
||||||
|
.connect(users[0])
|
||||||
|
.transfer(await users[1].getAddress(), aDAItoTransfer);
|
||||||
|
|
||||||
// it('User 0 transfers back to user 1', async () => {
|
const user2RedirectedBalanceAfter = await _aDai.getRedirectedBalance(
|
||||||
|
await users[2].getAddress()
|
||||||
|
);
|
||||||
|
|
||||||
// const aDAItoTransfer = await convertToCurrencyDecimals(_DAI.address, '500');
|
const user1BalanceAfter = await _aDai.balanceOf(
|
||||||
|
await users[1].getAddress()
|
||||||
|
);
|
||||||
|
|
||||||
// await _aDAI.transfer(users[1], aDAItoTransfer, {from: users[0]})
|
expect(user2RedirectedBalanceAfter.toString()).to.be.equal(
|
||||||
|
user1BalanceAfter.toString(),
|
||||||
|
"Invalid redirected balance for user 2 after transfer"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
// const user2RedirectedBalanceAfter = await _aDAI.getRedirectedBalance(users[2])
|
it("User 0 deposits 1 ETH and user tries to borrow, but the aTokens received as a transfer are not available as collateral (revert expected)", async () => {
|
||||||
|
// console.time("deposit()");
|
||||||
// const user1BalanceAfter = await _aDAI.balanceOf(users[1])
|
// await _lendingPool
|
||||||
|
// .connect(users[0])
|
||||||
// expect(user2RedirectedBalanceAfter.toString()).to.be.equal(user1BalanceAfter.toString(), "Invalid redirected balance for user 2 after transfer")
|
// .deposit(MOCK_ETH_ADDRESS, oneEther.toFixed(), "0", {
|
||||||
|
// value: new EthersBigNumber(oneEther.toFixed()),
|
||||||
// });
|
// });
|
||||||
|
// console.timeEnd("deposit()");
|
||||||
// it('User 0 deposits 1 ETH and user tries to borrow, but the aTokens received as a transfer are not available as collateral (revert expected)', async () => {
|
// await expectRevert(
|
||||||
|
// _lendingPoolInstance.borrow(
|
||||||
// await _lendingPoolInstance.deposit(ETHEREUM_ADDRESS, oneEther, '0', {
|
// ETHEREUM_ADDRESS,
|
||||||
// from: users[0],
|
// await convertToCurrencyDecimals(ETHEREUM_ADDRESS, "0.1"),
|
||||||
// value: oneEther.toFixed(0)
|
// RateMode.Stable,
|
||||||
// });
|
// "0",
|
||||||
|
// {from: users[1]}
|
||||||
// await expectRevert(_lendingPoolInstance.borrow(ETHEREUM_ADDRESS, await convertToCurrencyDecimals(ETHEREUM_ADDRESS,"0.1"), RateMode.Stable, "0", {from: users[1]}), "The collateral balance is 0")
|
// ),
|
||||||
|
// "The collateral balance is 0"
|
||||||
// });
|
// );
|
||||||
|
});
|
||||||
|
|
||||||
// it('User 1 sets the DAI as collateral and borrows, tries to transfer everything back to user 0 (revert expected)', async () => {
|
// it('User 1 sets the DAI as collateral and borrows, tries to transfer everything back to user 0 (revert expected)', async () => {
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
"node_modules/@nomiclabs/buidler-ethers/src/type-extensions.d.ts",
|
"node_modules/@nomiclabs/buidler-ethers/src/type-extensions.d.ts",
|
||||||
"node_modules/buidler-typechain/src/type-extensions.d.ts",
|
"node_modules/buidler-typechain/src/type-extensions.d.ts",
|
||||||
"node_modules/@nomiclabs/buidler-waffle/src/type-extensions.d.ts",
|
"node_modules/@nomiclabs/buidler-waffle/src/type-extensions.d.ts",
|
||||||
"node_modules/@nomiclabs/buidler-etherscan/src/type-extensions.d.ts"
|
"node_modules/@nomiclabs/buidler-etherscan/src/type-extensions.d.ts",
|
||||||
|
"node_modules/@nomiclabs/buidler-ganache/src/type-extensions.d.ts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user