123456789101112131415161718192021222324252627282930313233 |
- import { TASK_COMPILE } from "@nomiclabs/buidler/builtin-tasks/task-names";
- import { TypeChain } from "typechain/dist/TypeChain";
- import { task } from "@nomiclabs/buidler/config";
- import { tsGenerator } from "ts-generator";
- import { TASK_TYPECHAIN } from "./task-names";
- task(TASK_TYPECHAIN, "Generate TypeChain typings for compiled contracts", async function (_taskArgs, { config, run }) {
- if (!config.typechain || !config.typechain?.outDir || !config.typechain?.target) {
- throw new Error("Invalid TypeChain configuration. Please provide it via buidler.config.ts");
- }
- await run(TASK_COMPILE);
- console.log(
- `Creating TypeChain artifacts in directory ${config.typechain.outDir} for target ${config.typechain.target}`,
- );
- const cwd: string = process.cwd();
- await tsGenerator(
- { cwd },
- new TypeChain({
- cwd,
- rawConfig: {
- files: config.paths.artifacts + "/*.json",
- outDir: config.typechain.outDir,
- target: config.typechain.target,
- },
- }),
- );
- console.log(`Successfully generated TypeChain artifacts!`);
- });
|