Skip to content

Commit

Permalink
Update circuits filtering logic
Browse files Browse the repository at this point in the history
  • Loading branch information
Hrom131 committed Aug 6, 2024
1 parent 815e28b commit 0fc2054
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 30 deletions.
44 changes: 27 additions & 17 deletions src/core/compile/CompilationFilesResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,26 @@ export class CompilationFilesResolver {

const sourceNames: string[] = await this._getSourceNamesFromSourcePaths(circuitsSourcePaths);

Reporter!.verboseLog("compilation-file-resolver", "All circuits source names: %o", [sourceNames]);
Reporter!.verboseLog("compilation-file-resolver", "All circuit source names: %o", [sourceNames]);

const dependencyGraph: DependencyGraph = await this._getDependencyGraph(sourceNames);
const allFilteredSourceNames: string[] = filterCircuitFiles<string>(
sourceNames,
this._getCircuitsDirFullPath(),
this._zkitConfig.compilationSettings,
(sourceName: string): string => {
return getNormalizedFullPath(this._projectRoot, sourceName);
},
);

Reporter!.verboseLog("compilation-file-resolver", "All filtered circuit source names: %o", [
allFilteredSourceNames,
]);

let resolvedFilesInfoToCompile: ResolvedFileInfo[] = this._filterResolvedFiles(
const dependencyGraph: DependencyGraph = await this._getDependencyGraph(allFilteredSourceNames);

const resolvedFilesInfoToCompile: ResolvedFileInfo[] = this._filterResolvedFiles(
dependencyGraph.getResolvedFiles(),
sourceNames,
allFilteredSourceNames,
dependencyGraph,
);

Expand All @@ -50,31 +63,28 @@ export class CompilationFilesResolver {

this._invalidateCacheMissingArtifacts(resolvedFilesInfoToCompile);

let filteredResolvedFilesInfo: ResolvedFileInfo[];

if (!force) {
Reporter!.verboseLog("compilation-file-resolver", "Force flag disabled. Start filtering...");

resolvedFilesInfoToCompile = resolvedFilesInfoToCompile.filter((fileInfo) =>
filteredResolvedFilesInfo = resolvedFilesInfoToCompile.filter((fileInfo) =>
this._needsCompilation(fileInfo, compileFlags),
);
} else {
filteredResolvedFilesInfo = resolvedFilesInfoToCompile;
}

const filteredResolvedFilesInfo: ResolvedFileInfo[] = filterCircuitFiles<ResolvedFileInfo>(
resolvedFilesInfoToCompile,
this._getCircuitsDirFullPath(),
this._zkitConfig.compilationSettings,
(resolvedFileInfo: ResolvedFileInfo): string => {
return resolvedFileInfo.resolvedFile.absolutePath;
},
const filteredSourceNamesToCompile: string[] = filteredResolvedFilesInfo.map(
(file) => file.resolvedFile.sourceName,
);

const filteredResolvedFilesToCompile: ResolvedFile[] = filteredResolvedFilesInfo.map((file) => file.resolvedFile);

Reporter!.verboseLog("compilation-file-resolver", "Filtered circuit source names to compile: %o", [
filteredResolvedFilesToCompile.map((file) => file.sourceName),
filteredSourceNamesToCompile,
]);
Reporter!.reportCircuitListToCompile(
resolvedFilesInfoToCompile.map((file) => file.resolvedFile),
filteredResolvedFilesToCompile,
resolvedFilesInfoToCompile.map((file) => file.resolvedFile.sourceName),
filteredSourceNamesToCompile,
);

return filteredResolvedFilesInfo;
Expand Down
22 changes: 9 additions & 13 deletions src/reporter/Reporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import debug from "debug";
import chalk from "chalk";
import CliTable3 from "cli-table3";

import { ResolvedFile } from "hardhat/types";
import { emoji } from "hardhat/internal/cli/emoji";
import { pluralize } from "hardhat/internal/util/strings";

Expand All @@ -29,31 +28,28 @@ class BaseReporter {
this._quiet = newValue;
}

public reportCircuitListToCompile(
allResolvedFilesToCompile: ResolvedFile[],
filteredResolvedFilesToCompile: ResolvedFile[],
) {
public reportCircuitListToCompile(filteredSourceNames: string[], filteredSourceNamesToCompile: string[]) {
if (this.isQuiet()) return;

if (filteredResolvedFilesToCompile.length > 0) {
if (filteredSourceNamesToCompile.length > 0) {
let filesToCompileMessage: string = `\n${chalk.bold("Circuits to compile:")}\n`;

for (const file of filteredResolvedFilesToCompile) {
filesToCompileMessage += `\n${chalk.green(">")} ${chalk.italic(file.sourceName)}`;
for (const sourceName of filteredSourceNamesToCompile) {
filesToCompileMessage += `\n${chalk.green(">")} ${chalk.italic(sourceName)}`;
}

console.log(filesToCompileMessage);
}

const skippedFiles: ResolvedFile[] = allResolvedFilesToCompile.filter(
(file: ResolvedFile) => !filteredResolvedFilesToCompile.includes(file),
const skippedSourceNames: string[] = filteredSourceNames.filter(
(sourceName: string) => !filteredSourceNamesToCompile.includes(sourceName),
);

if (skippedFiles.length > 0) {
if (skippedSourceNames.length > 0) {
let skippedFilesMessage: string = `\n${chalk.bold("Compilation skipped for:")}\n`;

for (const file of skippedFiles) {
skippedFilesMessage += `\n${chalk.yellow(">")} ${chalk.italic.grey(file.sourceName)}`;
for (const sourceName of skippedSourceNames) {
skippedFilesMessage += `\n${chalk.yellow(">")} ${chalk.italic.grey(sourceName)}`;
}

console.log(skippedFilesMessage);
Expand Down

0 comments on commit 0fc2054

Please sign in to comment.