hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
27 lines • 1.45 kB
JavaScript
import { addStatementCoverageInstrumentation, latestSupportedSolidityVersion, } from "@nomicfoundation/edr";
import { satisfies } from "semver";
/**
* Instruments a solidity source file as part of a compilation job. i.e. the
* file is about to be compile as either a root file or a transitive dependency
* of one of the root files.
*
* @param compilationJobSolcVersion The solc version that the compilation job
* will use.
* @param sourceName The source name of the file, as present in the compilation
* job.
* @param fileContent The contents of the file.
* @param coverageLibraryPath The path to the coverage library. i.e. where to
* import it from.
* @returns An object with the instrumented source and its metadata, and the
* solidity version used to instrument the sources.
*/
export function instrumentSolidityFileForCompilationJob({ compilationJobSolcVersion, sourceName, fileContent, coverageLibraryPath, }) {
const latestSupportedVersion = latestSupportedSolidityVersion();
let instrumentationVersion = compilationJobSolcVersion;
if (!satisfies(instrumentationVersion, `<=${latestSupportedVersion}`)) {
instrumentationVersion = latestSupportedVersion;
}
const { source, metadata } = addStatementCoverageInstrumentation(fileContent, sourceName, instrumentationVersion, coverageLibraryPath);
return { source, metadata, instrumentationVersion };
}
//# sourceMappingURL=instrumentation.js.map