mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
d7a58e88ff
ARB: deploy protocols
98 lines
2.4 KiB
TypeScript
98 lines
2.4 KiB
TypeScript
import { config as dotEnvConfig } from "dotenv";
|
|
dotEnvConfig();
|
|
import { HttpNetworkUserConfig, HardhatUserConfig } from "hardhat/types/config";
|
|
import "@nomicfoundation/hardhat-verify";
|
|
import "@typechain/hardhat";
|
|
import "hardhat-deploy";
|
|
import "@nomiclabs/hardhat-ethers";
|
|
import "hardhat-contract-sizer";
|
|
import "@nomicfoundation/hardhat-foundry";
|
|
import "solidity-docgen";
|
|
|
|
const {
|
|
ALCHEMY_TOKEN_MAINNET,
|
|
ALCHEMY_TOKEN_POLYGON,
|
|
DEPLOYER_PRIVATE_KEY,
|
|
ETHERSCAN_API_KEY,
|
|
POLYGONSCAN_API_KEY,
|
|
ARBITRUM_API_KEY,
|
|
} = process.env;
|
|
|
|
const sharedNetworkConfig: HttpNetworkUserConfig = {};
|
|
|
|
// public address 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
|
|
// randomly generated for test purposes, do not use for actual deployment!
|
|
const DEFAULT_DEPLOYER_PRIVATE_KEY = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
|
|
|
|
sharedNetworkConfig.accounts = [DEPLOYER_PRIVATE_KEY || DEFAULT_DEPLOYER_PRIVATE_KEY];
|
|
|
|
const namedAccounts: any = {
|
|
deployer: {
|
|
default: 0, // use the first account (index = 0).
|
|
},
|
|
};
|
|
|
|
const defaultContractSettings = {
|
|
version: "0.8.21",
|
|
settings: {
|
|
optimizer: {
|
|
enabled: true,
|
|
runs: 10000000,
|
|
},
|
|
},
|
|
};
|
|
|
|
const config = {
|
|
defaultNetwork: "hardhat",
|
|
solidity: {
|
|
compilers: [defaultContractSettings],
|
|
},
|
|
networks: {
|
|
hardhat: {
|
|
forking: {
|
|
// @dev uncomment whatever network you want to fork
|
|
//
|
|
// ETH MAINNET
|
|
// url: "https://eth-mainnet.g.alchemy.com/v2/" + ALCHEMY_TOKEN_MAINNET,
|
|
// blockNumber: 18827888,
|
|
//
|
|
// POLYGON
|
|
url: "https://polygon-mainnet.g.alchemy.com/v2/" + ALCHEMY_TOKEN_POLYGON,
|
|
blockNumber: 51352596, // e.g. on Polygon
|
|
//
|
|
enabled: true,
|
|
},
|
|
},
|
|
localhost: {},
|
|
mainnet: {
|
|
...sharedNetworkConfig,
|
|
url: "https://rpc.ankr.com/eth",
|
|
},
|
|
arbitrum: {
|
|
...sharedNetworkConfig,
|
|
url: "https://rpc.ankr.com/arbitrum",
|
|
},
|
|
polygon: {
|
|
...sharedNetworkConfig,
|
|
url: "https://rpc.ankr.com/polygon",
|
|
gasPrice: 85_000_000_000,
|
|
},
|
|
},
|
|
etherscan: {
|
|
// blockchain explorers api keys from .env
|
|
apiKey: {
|
|
mainnet: ETHERSCAN_API_KEY || "",
|
|
polygon: POLYGONSCAN_API_KEY || "",
|
|
arbitrumOne: ARBITRUM_API_KEY || "",
|
|
},
|
|
},
|
|
namedAccounts,
|
|
docgen: {
|
|
outputDir: "./docs/contracts/src/contracts",
|
|
exclude: ["protocols/flashloan"],
|
|
pages: "files",
|
|
},
|
|
};
|
|
|
|
export default config;
|