mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
updates hardhat.config
This commit is contained in:
parent
dfb388ce8d
commit
c4d17ace2e
|
@ -28,22 +28,23 @@ const chainIds = {
|
|||
polygon: 137,
|
||||
};
|
||||
|
||||
// Ensure that we have all the environment variables we need.
|
||||
const mnemonic = process.env.MNEMONIC;
|
||||
if (!mnemonic) {
|
||||
throw new Error("Please set your MNEMONIC in a .env file");
|
||||
}
|
||||
|
||||
const alchemyApiKey = process.env.ALCHEMY_API_KEY;
|
||||
if (!alchemyApiKey) {
|
||||
throw new Error("Please set your ALCHEMY_ETH_API_KEY in a .env file");
|
||||
throw new Error("Please set your ALCHEMY_API_KEY in a .env file");
|
||||
}
|
||||
|
||||
const PRIVATE_KEY = process.env.PRIVATE_KEY;
|
||||
const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY;
|
||||
const ETHERSCAN_API = process.env.ETHERSCAN_API_KEY;
|
||||
const POLYGONSCAN_API = process.env.POLYGON_API_KEY;
|
||||
const ARBISCAN_API = process.env.ARBISCAN_API_KEY;
|
||||
const SNOWTRACE_API = process.env.SNOWTRACE_API_KEY;
|
||||
const mnemonic = process.env.MNEMONIC;
|
||||
|
||||
function createTestnetConfig(network: keyof typeof chainIds): NetworkUserConfig {
|
||||
const url: string = "https://eth-" + network + ".alchemyapi.io/v2/" + alchemyApiKey;
|
||||
function createTestnetConfig(
|
||||
network: keyof typeof chainIds
|
||||
): NetworkUserConfig {
|
||||
const url: string =
|
||||
"https://eth-" + network + ".alchemyapi.io/v2/" + alchemyApiKey;
|
||||
return {
|
||||
accounts: {
|
||||
count: 10,
|
||||
|
@ -58,25 +59,26 @@ function createTestnetConfig(network: keyof typeof chainIds): NetworkUserConfig
|
|||
|
||||
function getNetworkUrl(networkType: string) {
|
||||
//console.log(process.env);
|
||||
if (networkType === "avalanche") return "https://api.avax.network/ext/bc/C/rpc";
|
||||
else if (networkType === "polygon") return `https://polygon-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
||||
else if (networkType === "arbitrum") return `https://arb-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
||||
if (networkType === "avalanche")
|
||||
return "https://api.avax.network/ext/bc/C/rpc";
|
||||
else if (networkType === "polygon")
|
||||
return `https://polygon-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
||||
else if (networkType === "arbitrum")
|
||||
return `https://arb-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
||||
else return `https://eth-mainnet.alchemyapi.io/v2/${alchemyApiKey}`;
|
||||
}
|
||||
|
||||
function getBlockNumber(networkType: string) {
|
||||
let web3 = new Web3(new Web3.providers.HttpProvider(getNetworkUrl(networkType)));
|
||||
let blockNumber;
|
||||
web3.eth.getBlockNumber().then((x: any) => {
|
||||
blockNumber = x;
|
||||
});
|
||||
|
||||
return blockNumber;
|
||||
function getScanApiKey(networkType: string) {
|
||||
if (networkType === "avalanche") return SNOWTRACE_API;
|
||||
else if (networkType === "polygon") return POLYGONSCAN_API;
|
||||
else if (networkType === "arbitrum") return ARBISCAN_API;
|
||||
else return ETHERSCAN_API;
|
||||
}
|
||||
|
||||
/**
|
||||
* @type import('hardhat/config').HardhatUserConfig
|
||||
*/
|
||||
const config: HardhatUserConfig = {
|
||||
const config: HardhatUserConfig = {
|
||||
solidity: {
|
||||
compilers: [
|
||||
{
|
||||
|
@ -107,13 +109,24 @@ function getBlockNumber(networkType: string) {
|
|||
chainId: chainIds.hardhat,
|
||||
forking: {
|
||||
url: String(getNetworkUrl(String(process.env.networkType))),
|
||||
blockNumber: getBlockNumber(String(process.env.networkType)),
|
||||
},
|
||||
},
|
||||
goerli: createTestnetConfig("goerli"),
|
||||
kovan: createTestnetConfig("kovan"),
|
||||
rinkeby: createTestnetConfig("rinkeby"),
|
||||
ropsten: createTestnetConfig("ropsten"),
|
||||
mainnet: {
|
||||
url: getNetworkUrl("mainnet"),
|
||||
},
|
||||
polygon: {
|
||||
url: getNetworkUrl("polygon"),
|
||||
},
|
||||
avalanche: {
|
||||
url: getNetworkUrl("avalanche"),
|
||||
},
|
||||
arbitrum: {
|
||||
url: getNetworkUrl("arbiturm"),
|
||||
},
|
||||
},
|
||||
paths: {
|
||||
artifacts: "./artifacts",
|
||||
|
@ -122,19 +135,19 @@ function getBlockNumber(networkType: string) {
|
|||
tests: "./test",
|
||||
},
|
||||
etherscan: {
|
||||
apiKey: ETHERSCAN_API_KEY,
|
||||
},
|
||||
tenderly: {
|
||||
project: process.env.TENDERLY_PROJECT,
|
||||
username: process.env.TENDERLY_USERNAME,
|
||||
apiKey: getScanApiKey(getNetworkUrl(String(process.env.networkType))),
|
||||
},
|
||||
typechain: {
|
||||
outDir: "typechain",
|
||||
target: "ethers-v5",
|
||||
},
|
||||
mocha: {
|
||||
timeout: 10000 * 1000,
|
||||
timeout: 10000 * 1000, // 10,000 seconds
|
||||
},
|
||||
// tenderly: {
|
||||
// project: process.env.TENDERLY_PROJECT,
|
||||
// username: process.env.TENDERLY_USERNAME,
|
||||
// },
|
||||
};
|
||||
|
||||
export default config;
|
||||
|
|
Loading…
Reference in New Issue
Block a user