@nomicfoundation/hardhat-viem 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -248,6 +248,18 @@ This allows you to deploy a contract linked to the `ExampleLib` library at the a
248
248
 
249
249
  To deploy a contract, all libraries must be linked. An error will be thrown if any libraries are missing.
250
250
 
251
+ #### Using `ContractTypesMap` for easier contract type imports
252
+
253
+ To simplify importing contract types in `hardhat-viem`, you can use the `ContractTypesMap`. This map contains the contract types of all contracts in your project, indexed by their names.
254
+
255
+ ```typescript
256
+ import { ContractTypesMap } from "hardhat/types/artifacts";
257
+
258
+ const contract: ContractTypesMap["ContractName"];
259
+ ```
260
+
261
+ This reduces the need for multiple imports and makes your code cleaner and easier to manage.
262
+
251
263
  ## Usage
252
264
 
253
265
  There are no additional steps you need to take for this plugin to work.
package/internal/tasks.js CHANGED
@@ -105,6 +105,12 @@ declare module "hardhat/types/artifacts" {
105
105
  .map((name) => `${name}: never;`)
106
106
  .join("\n ")}
107
107
  }
108
+
109
+ interface ContractTypesMap {
110
+ ${Array.from(duplicateContractNames)
111
+ .map((name) => `${name}: never;`)
112
+ .join("\n ")}
113
+ }
108
114
  }
109
115
  `;
110
116
  }
@@ -173,6 +179,7 @@ function generateArtifactsDefinition(contractTypeData) {
173
179
  return `${AUTOGENERATED_FILE_PREFACE}
174
180
 
175
181
  import "hardhat/types/artifacts";
182
+ import type { GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
176
183
 
177
184
  ${contractTypeData
178
185
  .map((ctd) => `import { ${ctd.typeName} } from "./${ctd.contractName}";`)
@@ -187,6 +194,15 @@ declare module "hardhat/types/artifacts" {
187
194
  .map((ctd) => `["${ctd.fqn}"]: ${ctd.typeName};`)
188
195
  .join("\n ")}
189
196
  }
197
+
198
+ interface ContractTypesMap {
199
+ ${contractTypeData
200
+ .map((ctd) => `["${ctd.contractName}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`)
201
+ .join("\n ")}
202
+ ${contractTypeData
203
+ .map((ctd) => `["${ctd.fqn}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`)
204
+ .join("\n ")}
205
+ }
190
206
  }
191
207
  `;
192
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/internal/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../src/internal/tasks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomicfoundation/hardhat-viem",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "Hardhat plugin for viem",
5
5
  "homepage": "https://github.com/nomicfoundation/hardhat/tree/main/packages/hardhat-viem",
6
6
  "repository": "github:nomicfoundation/hardhat",
@@ -52,8 +52,8 @@
52
52
  "ts-node": "^10.8.0",
53
53
  "typescript": "~5.0.0",
54
54
  "viem": "^2.7.6",
55
- "@nomicfoundation/eslint-plugin-slow-imports": "^1.0.0",
56
- "@nomicfoundation/eslint-plugin-hardhat-internal-rules": "^1.0.2"
55
+ "@nomicfoundation/eslint-plugin-hardhat-internal-rules": "^1.0.2",
56
+ "@nomicfoundation/eslint-plugin-slow-imports": "^1.0.0"
57
57
  },
58
58
  "peerDependencies": {
59
59
  "hardhat": "^2.17.0",
@@ -164,6 +164,12 @@ declare module "hardhat/types/artifacts" {
164
164
  .map((name) => `${name}: never;`)
165
165
  .join("\n ")}
166
166
  }
167
+
168
+ interface ContractTypesMap {
169
+ ${Array.from(duplicateContractNames)
170
+ .map((name) => `${name}: never;`)
171
+ .join("\n ")}
172
+ }
167
173
  }
168
174
  `;
169
175
  }
@@ -260,6 +266,7 @@ function generateArtifactsDefinition(
260
266
  return `${AUTOGENERATED_FILE_PREFACE}
261
267
 
262
268
  import "hardhat/types/artifacts";
269
+ import type { GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
263
270
 
264
271
  ${contractTypeData
265
272
  .map((ctd) => `import { ${ctd.typeName} } from "./${ctd.contractName}";`)
@@ -274,6 +281,21 @@ declare module "hardhat/types/artifacts" {
274
281
  .map((ctd) => `["${ctd.fqn}"]: ${ctd.typeName};`)
275
282
  .join("\n ")}
276
283
  }
284
+
285
+ interface ContractTypesMap {
286
+ ${contractTypeData
287
+ .map(
288
+ (ctd) =>
289
+ `["${ctd.contractName}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`
290
+ )
291
+ .join("\n ")}
292
+ ${contractTypeData
293
+ .map(
294
+ (ctd) =>
295
+ `["${ctd.fqn}"]: GetContractReturnType<${ctd.typeName}["abi"]>;`
296
+ )
297
+ .join("\n ")}
298
+ }
277
299
  }
278
300
  `;
279
301
  }