hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
41 lines • 2.1 kB
TypeScript
import type { ArtifactManager, GetArtifactByName } from "../../../types/artifacts.js";
export declare const BUILD_INFO_DIR_NAME = "build-info";
export declare const EDIT_DISTANCE_THRESHOLD = 3;
/**
* We cache the info that we read from the file system, otherwise we would
* have to traverse the filesystem every time we need to get the an artifact.
*
* To keep our view of the filesystem consistent, we cache everything at the
* same time, using this interface to organize the data.
*/
interface FsData {
allArtifactPaths: ReadonlySet<string>;
allFullyQualifiedNames: ReadonlySet<string>;
bareNameToFullyQualifiedNameMap: Map<string, ReadonlySet<string>>;
fullyQualifiedNameToArtifactPath: Map<string, string>;
}
export declare class ArtifactManagerImplementation implements ArtifactManager {
#private;
constructor(artifactsPath: string, readFsData?: () => Promise<FsData>);
readArtifact<ContractNameT extends string>(contractNameOrFullyQualifiedName: ContractNameT): Promise<GetArtifactByName<ContractNameT>>;
getArtifactPath(contractNameOrFullyQualifiedName: string): Promise<string>;
artifactExists(contractNameOrFullyQualifiedName: string): Promise<boolean>;
getBuildInfoId(contractNameOrFullyQualifiedName: string): Promise<string | undefined>;
getAllFullyQualifiedNames(): Promise<ReadonlySet<string>>;
getAllBuildInfoIds(): Promise<ReadonlySet<string>>;
getBuildInfoPath(buildInfoId: string): Promise<string | undefined>;
getBuildInfoOutputPath(buildInfoId: string): Promise<string | undefined>;
clearCache(): Promise<void>;
}
/**
* Returns the edit-distance between two given strings using Levenshtein distance.
*
* @param a First string being compared
* @param b Second string being compared
* @returns distance between the two strings (lower number == more similar)
* @see https://github.com/gustf/js-levenshtein
* @license MIT - https://github.com/gustf/js-levenshtein/blob/master/LICENSE
*/
export declare function editDistance(a: string, b: string): number;
export {};
//# sourceMappingURL=artifact-manager.d.ts.map