代码拉取完成,页面将自动刷新
import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from "hardhat/builtin-tasks/task-names";
import { subtask, task } from "hardhat/config";
import { compareLastTwoReports } from "./scripts/compare_reports";
import { printLastReport } from "./scripts/print_report";
import { getReportPathForCommit } from "./scripts/utils";
import { writeReports } from "./scripts/write_reports";
import type { HardhatUserConfig } from "hardhat/config";
import "dotenv/config";
import "@nomiclabs/hardhat-ethers";
import "@nomicfoundation/hardhat-chai-matchers";
import "@nomiclabs/hardhat-etherscan";
import "@typechain/hardhat";
import "hardhat-gas-reporter";
import "solidity-coverage";
// Filter Reference Contracts
subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(
async (_, __, runSuper) => {
const paths = await runSuper();
return paths.filter((p: any) => !p.includes("contracts/reference/"));
}
);
task("write-reports", "Write pending gas reports").setAction(
async (taskArgs, hre) => {
writeReports(hre);
}
);
task("compare-reports", "Compare last two gas reports").setAction(
async (taskArgs, hre) => {
compareLastTwoReports(hre);
}
);
task("print-report", "Print the last gas report").setAction(
async (taskArgs, hre) => {
printLastReport(hre);
}
);
const optimizerSettingsNoSpecializer = {
enabled: true,
runs: 4_294_967_295,
details: {
peephole: true,
inliner: true,
jumpdestRemover: true,
orderLiterals: true,
deduplicate: true,
cse: true,
constantOptimizer: true,
yulDetails: {
stackAllocation: true,
optimizerSteps:
"dhfoDgvulfnTUtnIf[xa[r]EscLMcCTUtTOntnfDIulLculVcul [j]Tpeulxa[rul]xa[r]cLgvifCTUca[r]LSsTOtfDnca[r]Iulc]jmul[jul] VcTOcul jmul",
},
},
};
// You need to export an object to set up your config
// Go to https://hardhat.org/config/ to learn more
const config: HardhatUserConfig = {
solidity: {
compilers: [
{
version: "0.8.24",
settings: {
evmVersion: "cancun",
viaIR: true,
optimizer: {
...(process.env.NO_SPECIALIZER
? optimizerSettingsNoSpecializer
: { enabled: true, runs: 4_294_967_295 }),
},
metadata: {
bytecodeHash: "none",
},
outputSelection: {
"*": {
"*": ["evm.assembly", "irOptimized", "devdoc"],
},
},
},
},
],
overrides: {
"contracts/conduit/Conduit.sol": {
version: "0.8.14",
settings: {
viaIR: true,
optimizer: {
enabled: true,
runs: 1000000,
},
},
},
"contracts/conduit/ConduitController.sol": {
version: "0.8.14",
settings: {
viaIR: true,
optimizer: {
enabled: true,
runs: 1000000,
},
},
},
"contracts/helpers/TransferHelper.sol": {
version: "0.8.14",
settings: {
viaIR: true,
optimizer: {
enabled: true,
runs: 1000000,
},
},
},
"contracts/helpers/order-validator": {
version: "0.8.17",
settings: {
viaIR: false,
optimizer: {
enabled: true,
runs: 1,
},
},
},
},
},
networks: {
hardhat: {
hardfork: "cancun",
blockGasLimit: 30_000_000,
throwOnCallFailures: false,
allowUnlimitedContractSize: false,
},
verificationNetwork: {
url: process.env.NETWORK_RPC ?? "",
},
},
gasReporter: {
enabled: process.env.REPORT_GAS !== undefined,
currency: "USD",
outputFile: getReportPathForCommit(),
noColors: true,
},
etherscan: {
apiKey: process.env.EXPLORER_API_KEY,
},
// specify separate cache for hardhat, since it could possibly conflict with foundry's
paths: { cache: "hh-cache" },
};
export default config;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。