@tevm/compiler
Version:
Utilities around compiler
76 lines (69 loc) • 2.62 kB
text/typescript
import { ResolvedCompilerConfig } from '@tevm/config';
import { ModuleInfo as ModuleInfo$1 } from '@tevm/resolutions';
import { SolcContractOutput, SolcOutput, SolcInputDescription } from '@tevm/solc';
import { Node } from 'solidity-ast/node.js';
type ResolvedArtifacts$1 = {
artifacts: Artifacts$1;
modules: Record<string, ModuleInfo$1>;
asts?: Record<string, Node> | undefined;
solcInput?: SolcInputDescription | undefined;
solcOutput?: SolcOutput | undefined;
};
type ResolveArtifacts = (solFile: string, basedir: string, logger: Logger$1, config: ResolvedCompilerConfig, includeAst: boolean, includeBytecode: boolean, fao: FileAccessObject$1, solc: any) => Promise<ResolvedArtifacts$1>;
type ResolveArtifactsSync = (solFile: string, basedir: string, logger: Logger$1, config: ResolvedCompilerConfig, includeAst: boolean, includeBytecode: boolean, fao: FileAccessObject$1, solc: any) => ResolvedArtifacts$1;
type FileAccessObject$1 = {
readFile: (path: string, encoding: BufferEncoding) => Promise<string>;
readFileSync: (path: string, encoding: BufferEncoding) => string;
existsSync: (path: string) => boolean;
exists: (path: string) => Promise<boolean>;
};
type Logger$1 = {
info: (...messages: string[]) => void;
error: (...message: string[]) => void;
warn: (...message: string[]) => void;
log: (...message: string[]) => void;
};
type CompiledContracts$1<TIncludeAsts extends boolean = boolean> = {
artifacts: SolcOutput['contracts'][string] | undefined;
modules: Record<string, ModuleInfo$1>;
asts: TIncludeAsts extends true ? Record<string, Node> : undefined;
solcInput?: SolcInputDescription;
solcOutput?: SolcOutput;
};
type Artifacts$1 = Record<string, Pick<SolcContractOutput, 'abi' | 'userdoc' | 'evm'> & {
contractName: string;
}>;
/**
* Resolves artifacts with solc asyncronously
* @type {import('./types.js').ResolveArtifacts}
*/
declare const resolveArtifacts: ResolveArtifacts;
/**
* @type {import('./types.js').ResolveArtifactsSync}
*/
declare const resolveArtifactsSync: ResolveArtifactsSync;
/**
* ./types.ts
*/
type Artifacts = Artifacts$1;
/**
* ./types.ts
*/
type CompiledContracts = CompiledContracts$1;
/**
* ./types.ts
*/
type FileAccessObject = FileAccessObject$1;
/**
* ./types.ts
*/
type Logger = Logger$1;
/**
* ./types.ts
*/
type ModuleInfo = ModuleInfo$1;
/**
* ./types.ts
*/
type ResolvedArtifacts = ResolvedArtifacts$1;
export { type Artifacts, type CompiledContracts, type FileAccessObject, type Logger, type ModuleInfo, type ResolvedArtifacts, resolveArtifacts, resolveArtifactsSync };