Skip to content

Commit cd60ea6

Browse files
authored
Add ContractTypesMap to artifacts.d.ts
Add `ContractTypesMap` that returns `GetContractReturnType<${ctd.typeName}["abi"]>` to the `generateArtifactsDefinition()` and `generateDuplicateArtifactsDefinition()`.
1 parent bdd04d3 commit cd60ea6

File tree

1 file changed

+16
-0
lines changed
  • packages/hardhat-viem/src/internal

1 file changed

+16
-0
lines changed

packages/hardhat-viem/src/internal/tasks.ts

+16
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ declare module "hardhat/types/artifacts" {
164164
.map((name) => `${name}: never;`)
165165
.join("\n ")}
166166
}
167+
168+
interface ContractTypesMap {
169+
${Array.from(duplicateContractNames)
170+
.map((name) => `${name}: never;`)
171+
.join("\n ")}
172+
}
167173
}
168174
`;
169175
}
@@ -260,6 +266,7 @@ function generateArtifactsDefinition(
260266
return `${AUTOGENERATED_FILE_PREFACE}
261267
262268
import "hardhat/types/artifacts";
269+
import type { GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
263270
264271
${contractTypeData
265272
.map((ctd) => `import { ${ctd.typeName} } from "./${ctd.contractName}";`)
@@ -274,6 +281,15 @@ declare module "hardhat/types/artifacts" {
274281
.map((ctd) => `["${ctd.fqn}"]: ${ctd.typeName};`)
275282
.join("\n ")}
276283
}
284+
285+
interface ContractTypesMap {
286+
${contractTypeData
287+
.map((ctd) => `["${ctd.contractName}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`)
288+
.join("\n ")}
289+
${contractTypeData
290+
.map((ctd) => `["${ctd.fqn}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`)
291+
.join("\n ")}
292+
}
277293
}
278294
`;
279295
}

0 commit comments

Comments
 (0)