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,
|
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;
|
const alchemyApiKey = process.env.ALCHEMY_API_KEY;
|
||||||
if (!alchemyApiKey) {
|
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 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 {
|
function createTestnetConfig(
|
||||||
const url: string = "https://eth-" + network + ".alchemyapi.io/v2/" + alchemyApiKey;
|
network: keyof typeof chainIds
|
||||||
|
): NetworkUserConfig {
|
||||||
|
const url: string =
|
||||||
|
"https://eth-" + network + ".alchemyapi.io/v2/" + alchemyApiKey;
|
||||||
return {
|
return {
|
||||||
accounts: {
|
accounts: {
|
||||||
count: 10,
|
count: 10,
|
||||||
|
@ -58,25 +59,26 @@ function createTestnetConfig(network: keyof typeof chainIds): NetworkUserConfig
|
||||||
|
|
||||||
function getNetworkUrl(networkType: string) {
|
function getNetworkUrl(networkType: string) {
|
||||||
//console.log(process.env);
|
//console.log(process.env);
|
||||||
if (networkType === "avalanche") return "https://api.avax.network/ext/bc/C/rpc";
|
if (networkType === "avalanche")
|
||||||
else if (networkType === "polygon") return `https://polygon-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
return "https://api.avax.network/ext/bc/C/rpc";
|
||||||
else if (networkType === "arbitrum") return `https://arb-mainnet.g.alchemy.com/v2/${alchemyApiKey}`;
|
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}`;
|
else return `https://eth-mainnet.alchemyapi.io/v2/${alchemyApiKey}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBlockNumber(networkType: string) {
|
function getScanApiKey(networkType: string) {
|
||||||
let web3 = new Web3(new Web3.providers.HttpProvider(getNetworkUrl(networkType)));
|
if (networkType === "avalanche") return SNOWTRACE_API;
|
||||||
let blockNumber;
|
else if (networkType === "polygon") return POLYGONSCAN_API;
|
||||||
web3.eth.getBlockNumber().then((x: any) => {
|
else if (networkType === "arbitrum") return ARBISCAN_API;
|
||||||
blockNumber = x;
|
else return ETHERSCAN_API;
|
||||||
});
|
|
||||||
|
|
||||||
return blockNumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type import('hardhat/config').HardhatUserConfig
|
* @type import('hardhat/config').HardhatUserConfig
|
||||||
*/
|
*/
|
||||||
const config: HardhatUserConfig = {
|
const config: HardhatUserConfig = {
|
||||||
solidity: {
|
solidity: {
|
||||||
compilers: [
|
compilers: [
|
||||||
{
|
{
|
||||||
|
@ -107,13 +109,24 @@ function getBlockNumber(networkType: string) {
|
||||||
chainId: chainIds.hardhat,
|
chainId: chainIds.hardhat,
|
||||||
forking: {
|
forking: {
|
||||||
url: String(getNetworkUrl(String(process.env.networkType))),
|
url: String(getNetworkUrl(String(process.env.networkType))),
|
||||||
blockNumber: getBlockNumber(String(process.env.networkType)),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
goerli: createTestnetConfig("goerli"),
|
goerli: createTestnetConfig("goerli"),
|
||||||
kovan: createTestnetConfig("kovan"),
|
kovan: createTestnetConfig("kovan"),
|
||||||
rinkeby: createTestnetConfig("rinkeby"),
|
rinkeby: createTestnetConfig("rinkeby"),
|
||||||
ropsten: createTestnetConfig("ropsten"),
|
ropsten: createTestnetConfig("ropsten"),
|
||||||
|
mainnet: {
|
||||||
|
url: getNetworkUrl("mainnet"),
|
||||||
|
},
|
||||||
|
polygon: {
|
||||||
|
url: getNetworkUrl("polygon"),
|
||||||
|
},
|
||||||
|
avalanche: {
|
||||||
|
url: getNetworkUrl("avalanche"),
|
||||||
|
},
|
||||||
|
arbitrum: {
|
||||||
|
url: getNetworkUrl("arbiturm"),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
paths: {
|
paths: {
|
||||||
artifacts: "./artifacts",
|
artifacts: "./artifacts",
|
||||||
|
@ -122,19 +135,19 @@ function getBlockNumber(networkType: string) {
|
||||||
tests: "./test",
|
tests: "./test",
|
||||||
},
|
},
|
||||||
etherscan: {
|
etherscan: {
|
||||||
apiKey: ETHERSCAN_API_KEY,
|
apiKey: getScanApiKey(getNetworkUrl(String(process.env.networkType))),
|
||||||
},
|
|
||||||
tenderly: {
|
|
||||||
project: process.env.TENDERLY_PROJECT,
|
|
||||||
username: process.env.TENDERLY_USERNAME,
|
|
||||||
},
|
},
|
||||||
typechain: {
|
typechain: {
|
||||||
outDir: "typechain",
|
outDir: "typechain",
|
||||||
target: "ethers-v5",
|
target: "ethers-v5",
|
||||||
},
|
},
|
||||||
mocha: {
|
mocha: {
|
||||||
timeout: 10000 * 1000,
|
timeout: 10000 * 1000, // 10,000 seconds
|
||||||
},
|
},
|
||||||
|
// tenderly: {
|
||||||
|
// project: process.env.TENDERLY_PROJECT,
|
||||||
|
// username: process.env.TENDERLY_USERNAME,
|
||||||
|
// },
|
||||||
};
|
};
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user