mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
91 lines
2.4 KiB
TypeScript
91 lines
2.4 KiB
TypeScript
|
import { usePlugin, BuidlerConfig } from "@nomiclabs/buidler/config";
|
||
|
import path from "path";
|
||
|
import fs from "fs";
|
||
|
// @ts-ignore
|
||
|
import { accounts } from "./test-wallets.js";
|
||
|
import { eEthereumNetwork } from "./helpers/types";
|
||
|
|
||
|
usePlugin("@nomiclabs/buidler-ethers");
|
||
|
usePlugin("buidler-typechain");
|
||
|
usePlugin("solidity-coverage");
|
||
|
usePlugin("@nomiclabs/buidler-waffle");
|
||
|
usePlugin("@nomiclabs/buidler-etherscan");
|
||
|
|
||
|
["misc", "deployments", "migrations"].forEach((folder) => {
|
||
|
const tasksPath = path.join(__dirname, "tasks", folder);
|
||
|
fs.readdirSync(tasksPath).forEach((task) => require(`${tasksPath}/${task}`));
|
||
|
});
|
||
|
|
||
|
const DEFAULT_BLOCK_GAS_LIMIT = 9500000;
|
||
|
const DEFAULT_GAS_PRICE = 10;
|
||
|
const HARDFORK = "istanbul";
|
||
|
const INFURA_KEY = "";
|
||
|
const ETHERSCAN_KEY = "";
|
||
|
const MNEMONIC_PATH = "m/44'/60'/0'/0";
|
||
|
const MNEMONICS: { [network: string]: string } = {
|
||
|
[eEthereumNetwork.kovan]: "",
|
||
|
[eEthereumNetwork.ropsten]: "",
|
||
|
[eEthereumNetwork.main]: "",
|
||
|
};
|
||
|
|
||
|
const getCommonNetworkConfig = (
|
||
|
networkName: eEthereumNetwork,
|
||
|
networkId: number
|
||
|
) => {
|
||
|
return {
|
||
|
url: `https://${networkName}.infura.io/v3/${INFURA_KEY}`,
|
||
|
hardfork: HARDFORK,
|
||
|
blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT,
|
||
|
gasMultiplier: DEFAULT_GAS_PRICE,
|
||
|
chainId: networkId,
|
||
|
accounts: {
|
||
|
mnemonic: MNEMONICS[networkName],
|
||
|
path: MNEMONIC_PATH,
|
||
|
initialIndex: 0,
|
||
|
count: 20,
|
||
|
},
|
||
|
};
|
||
|
};
|
||
|
|
||
|
const config: BuidlerConfig = {
|
||
|
solc: {
|
||
|
version: "0.6.8",
|
||
|
optimizer: { enabled: false, runs: 200 },
|
||
|
evmVersion: "istanbul",
|
||
|
},
|
||
|
typechain: {
|
||
|
outDir: "types",
|
||
|
target: "ethers-v4",
|
||
|
},
|
||
|
etherscan: {
|
||
|
url: "https://api-kovan.etherscan.io/api",
|
||
|
apiKey: ETHERSCAN_KEY,
|
||
|
},
|
||
|
defaultNetwork: "buidlerevm",
|
||
|
mocha: {
|
||
|
enableTimeouts: false,
|
||
|
},
|
||
|
networks: {
|
||
|
kovan: getCommonNetworkConfig(eEthereumNetwork.kovan, 42),
|
||
|
ropsten: getCommonNetworkConfig(eEthereumNetwork.ropsten, 3),
|
||
|
main: getCommonNetworkConfig(eEthereumNetwork.main, 1),
|
||
|
buidlerevm: {
|
||
|
hardfork: "istanbul",
|
||
|
blockGasLimit: DEFAULT_BLOCK_GAS_LIMIT,
|
||
|
gas: DEFAULT_BLOCK_GAS_LIMIT,
|
||
|
gasPrice: 8000000000,
|
||
|
chainId: 31337,
|
||
|
throwOnTransactionFailures: true,
|
||
|
throwOnCallFailures: true,
|
||
|
accounts: accounts.map(
|
||
|
({ secretKey, balance }: { secretKey: string; balance: string }) => ({
|
||
|
privateKey: secretKey,
|
||
|
balance,
|
||
|
})
|
||
|
),
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export default config;
|