Files
hardhat-template/tasks/typechain.ts
Paul Razvan Berg 7e4eb7e3a8 docs: write a README
docs: add a license (WTFPL)
fix: make solhint work with windows crlf
2020-10-12 02:10:54 +03:00

34 lines
1.1 KiB
TypeScript

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!`);
});