locklift
Version:
Node JS framework for working with Ever contracts. Inspired by Truffle and Hardhat. Helps you to build, test, run and maintain your smart contracts.
32 lines (27 loc) • 959 B
text/typescript
import fs from "fs-extra";
import { Builder } from "../builder";
import { compilerConfigResolver } from "../builder/utils";
import { ConfigState, LockliftConfig } from "../../config";
import path from "path";
export const buildStep = async (
config: LockliftConfig<ConfigState.INTERNAL>,
options: {
build: string;
contracts: string;
disableIncludePath: boolean;
network?: string;
} & Pick<LockliftConfig, "compiler" | "linker">,
isForce: boolean,
) => {
fs.ensureDirSync(options.build);
const forkSettings = config.networks[options.network as string]?.fork;
const builder = Builder.create(await compilerConfigResolver(config), {
build: options.build,
disableIncludePath: options.disableIncludePath,
contracts: options.contracts,
externalAbiFiles: forkSettings?.contracts.map(({ abi }) => abi.path),
force: isForce,
});
const status = await builder.buildContracts();
if (!status) process.exit(1);
};