hardhat 3.5.0 → 3.6.0

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.
Files changed (82) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/src/internal/builtin-plugins/flatten/task-action.d.ts.map +1 -1
  3. package/dist/src/internal/builtin-plugins/flatten/task-action.js +23 -7
  4. package/dist/src/internal/builtin-plugins/flatten/task-action.js.map +1 -1
  5. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts +2 -5
  6. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
  7. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +79 -12
  8. package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
  9. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts +6 -10
  10. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.d.ts.map +1 -1
  11. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js +54 -43
  12. package/dist/src/internal/builtin-plugins/solidity/build-system/warning-suppression.js.map +1 -1
  13. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.d.ts.map +1 -1
  14. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js +2 -1
  15. package/dist/src/internal/builtin-plugins/solidity/hook-handlers/hre.js.map +1 -1
  16. package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts.map +1 -1
  17. package/dist/src/internal/builtin-plugins/solidity/tasks/build.js +1 -5
  18. package/dist/src/internal/builtin-plugins/solidity/tasks/build.js.map +1 -1
  19. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts +53 -1
  20. package/dist/src/internal/builtin-plugins/solidity/type-extensions.d.ts.map +1 -1
  21. package/dist/src/internal/cli/error-handler.d.ts +11 -2
  22. package/dist/src/internal/cli/error-handler.d.ts.map +1 -1
  23. package/dist/src/internal/cli/error-handler.js +72 -46
  24. package/dist/src/internal/cli/error-handler.js.map +1 -1
  25. package/dist/src/internal/cli/help/utils.d.ts.map +1 -1
  26. package/dist/src/internal/cli/help/utils.js +3 -2
  27. package/dist/src/internal/cli/help/utils.js.map +1 -1
  28. package/dist/src/internal/cli/init/init.d.ts.map +1 -1
  29. package/dist/src/internal/cli/init/init.js +115 -4
  30. package/dist/src/internal/cli/init/init.js.map +1 -1
  31. package/dist/src/internal/cli/init/package-manager.d.ts +7 -1
  32. package/dist/src/internal/cli/init/package-manager.d.ts.map +1 -1
  33. package/dist/src/internal/cli/init/package-manager.js +14 -2
  34. package/dist/src/internal/cli/init/package-manager.js.map +1 -1
  35. package/dist/src/internal/cli/main.d.ts.map +1 -1
  36. package/dist/src/internal/cli/main.js +4 -2
  37. package/dist/src/internal/cli/main.js.map +1 -1
  38. package/dist/src/internal/cli/telemetry/error-classification/classifier.d.ts +2 -1
  39. package/dist/src/internal/cli/telemetry/error-classification/classifier.d.ts.map +1 -1
  40. package/dist/src/internal/cli/telemetry/error-classification/classifier.js +2 -1
  41. package/dist/src/internal/cli/telemetry/error-classification/classifier.js.map +1 -1
  42. package/dist/src/internal/core/tasks/resolved-task.d.ts.map +1 -1
  43. package/dist/src/internal/core/tasks/resolved-task.js +3 -2
  44. package/dist/src/internal/core/tasks/resolved-task.js.map +1 -1
  45. package/dist/src/internal/core/tasks/utils.d.ts +3 -0
  46. package/dist/src/internal/core/tasks/utils.d.ts.map +1 -1
  47. package/dist/src/internal/core/tasks/utils.js +6 -0
  48. package/dist/src/internal/core/tasks/utils.js.map +1 -1
  49. package/dist/src/internal/core/tasks/validations.js +3 -3
  50. package/dist/src/internal/core/tasks/validations.js.map +1 -1
  51. package/dist/src/internal/using-hardhat2-plugin-errors.d.ts.map +1 -1
  52. package/dist/src/internal/using-hardhat2-plugin-errors.js +8 -11
  53. package/dist/src/internal/using-hardhat2-plugin-errors.js.map +1 -1
  54. package/dist/src/types/solidity/build-system.d.ts +22 -2
  55. package/dist/src/types/solidity/build-system.d.ts.map +1 -1
  56. package/dist/src/types/solidity/build-system.js.map +1 -1
  57. package/package.json +4 -3
  58. package/skills/hardhat/SKILL.md +152 -0
  59. package/skills/hardhat-toolbox-mocha-ethers/SKILL.md +119 -0
  60. package/skills/hardhat-toolbox-viem/SKILL.md +126 -0
  61. package/src/internal/builtin-plugins/flatten/task-action.ts +37 -7
  62. package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +126 -21
  63. package/src/internal/builtin-plugins/solidity/build-system/warning-suppression.ts +81 -59
  64. package/src/internal/builtin-plugins/solidity/hook-handlers/hre.ts +3 -2
  65. package/src/internal/builtin-plugins/solidity/tasks/build.ts +1 -6
  66. package/src/internal/builtin-plugins/solidity/type-extensions.ts +69 -0
  67. package/src/internal/cli/error-handler.ts +103 -72
  68. package/src/internal/cli/help/utils.ts +9 -2
  69. package/src/internal/cli/init/init.ts +141 -0
  70. package/src/internal/cli/init/package-manager.ts +18 -1
  71. package/src/internal/cli/main.ts +5 -3
  72. package/src/internal/cli/telemetry/error-classification/classifier.ts +2 -1
  73. package/src/internal/core/tasks/resolved-task.ts +5 -2
  74. package/src/internal/core/tasks/utils.ts +13 -0
  75. package/src/internal/core/tasks/validations.ts +3 -3
  76. package/src/internal/using-hardhat2-plugin-errors.ts +8 -11
  77. package/src/types/solidity/build-system.ts +24 -5
  78. package/templates/hardhat-3/01-node-test-runner-viem/AGENTS.md +20 -0
  79. package/templates/hardhat-3/01-node-test-runner-viem/package.json +3 -3
  80. package/templates/hardhat-3/02-mocha-ethers/AGENTS.md +20 -0
  81. package/templates/hardhat-3/02-mocha-ethers/package.json +3 -3
  82. package/templates/hardhat-3/03-minimal/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/error-classification/classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../../../../../src/internal/cli/telemetry/error-classification/classifier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-task.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/resolved-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,4BAA4B,EAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAGV,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAajC,qBAAa,YAAa,YAAW,IAAI;;aAgDrB,EAAE,EAAE,MAAM,EAAE;aACZ,WAAW,EAAE,MAAM;aACnB,OAAO,EAAE,WAAW;aACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;aACtC,mBAAmB,EAAE,4BAA4B,EAAE;aACnD,QAAQ,EAAE,MAAM,GAAG,SAAS;aAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;WAnD/B,eAAe,CAC3B,GAAG,EAAE,yBAAyB,EAC9B,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY;WAaD,aAAa,CACzB,GAAG,EAAE,yBAAyB,EAC9B,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACzC,mBAAmB,EAAE,4BAA4B,EAAE,EACnD,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY;gBAmBG,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,mBAAmB,EAAE,4BAA4B,EAAE,EACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAC3C,GAAG,EAAE,yBAAyB;IAKhC,IAAW,OAAO,IAAI,OAAO,CAM5B;IAED;;;;;;;;;OASG;IACU,GAAG,CAAC,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;CAuLlE"}
1
+ {"version":3,"file":"resolved-task.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/resolved-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,4BAA4B,EAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAGV,IAAI,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAajC,qBAAa,YAAa,YAAW,IAAI;;aAgDrB,EAAE,EAAE,MAAM,EAAE;aACZ,WAAW,EAAE,MAAM;aACnB,OAAO,EAAE,WAAW;aACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;aACtC,mBAAmB,EAAE,4BAA4B,EAAE;aACnD,QAAQ,EAAE,MAAM,GAAG,SAAS;aAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;WAnD/B,eAAe,CAC3B,GAAG,EAAE,yBAAyB,EAC9B,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY;WAaD,aAAa,CACzB,GAAG,EAAE,yBAAyB,EAC9B,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACzC,mBAAmB,EAAE,4BAA4B,EAAE,EACnD,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY;gBAmBG,EAAE,EAAE,MAAM,EAAE,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,mBAAmB,EAAE,4BAA4B,EAAE,EACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAC3C,GAAG,EAAE,yBAAyB;IAKhC,IAAW,OAAO,IAAI,OAAO,CAM5B;IAED;;;;;;;;;OASG;IACU,GAAG,CAAC,aAAa,GAAE,aAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;CA0LlE"}
@@ -1,7 +1,7 @@
1
1
  import { HardhatError, assertHardhatInvariant, } from "@nomicfoundation/hardhat-errors";
2
2
  import { ensureError } from "@nomicfoundation/hardhat-utils/error";
3
3
  import { detectPluginNpmDependencyProblems } from "../plugins/detect-plugin-npm-dependency-problems.js";
4
- import { formatTaskId } from "./utils.js";
4
+ import { formatTaskId, isArgumentRequired } from "./utils.js";
5
5
  import { validateTaskArgumentValue } from "./validations.js";
6
6
  export class ResolvedTask {
7
7
  id;
@@ -109,7 +109,8 @@ export class ResolvedTask {
109
109
  * @throws HardhatError if the argument is required and doesn't have a value.
110
110
  */
111
111
  #validateRequiredArgument(argument, value) {
112
- if (argument.defaultValue === undefined && value === undefined) {
112
+ if (isArgumentRequired(argument.type, argument.defaultValue) &&
113
+ value === undefined) {
113
114
  throw new HardhatError(HardhatError.ERRORS.CORE.TASK_DEFINITIONS.MISSING_VALUE_FOR_TASK_ARGUMENT, {
114
115
  argument: argument.name,
115
116
  task: formatTaskId(this.id),
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-task.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/resolved-task.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,YAAY,EACZ,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AAExG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,OAAO,YAAY;IAgDL;IACA;IACA;IACA;IACA;IACA;IACA;IArDT,IAAI,CAA4B;IAElC,MAAM,CAAC,eAAe,CAC3B,GAA8B,EAC9B,EAAY,EACZ,WAAmB,EACnB,QAAiB;QAEjB,OAAO,IAAI,YAAY,CACrB,EAAE,EACF,WAAW,EACX,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAC1D,IAAI,GAAG,EAAE,EACT,EAAE,EACF,QAAQ,EACR,IAAI,GAAG,EAAE,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,aAAa,CACzB,GAA8B,EAC9B,EAAY,EACZ,WAAmB,EACnB,UAAsB,EACtB,OAAyC,EACzC,mBAAmD,EACnD,QAAiB;QAEjB,OAAO,IAAI,YAAY,CACrB,EAAE,EACF,WAAW,EACX;YACE;gBACE,QAAQ;gBACR,GAAG,UAAU;aACd;SACF,EACD,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAChC,mBAAmB,EACnB,QAAQ,EACR,IAAI,GAAG,EAAE,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,YACkB,EAAY,EACZ,WAAmB,EACnB,OAAoB,EACpB,OAAsC,EACtC,mBAAmD,EACnD,QAA4B,EAC5B,QAA2B,EAC3C,GAA8B;QAPd,OAAE,GAAF,EAAE,CAAU;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAa;QACpB,YAAO,GAAP,OAAO,CAA+B;QACtC,wBAAmB,GAAnB,mBAAmB,CAAgC;QACnD,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,aAAQ,GAAR,QAAQ,CAAmB;QAG3C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;YACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,GAAG,CAAC,gBAA+B,EAAE;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EACpD;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,CACF,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAClE,MAAM,mBAAmB,GAAG;YAC1B,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxB,GAAG,IAAI,CAAC,mBAAmB;SAC5B,CAAC;QACF,MAAM,sBAAsB,GAAkB,EAAE,CAAC;QACjD,KAAK,MAAM,kBAAkB,IAAI,mBAAmB,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,YAAY,IAAI,kBAAkB,CAAC;YAExD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,yBAAyB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,yBAAyB,CACvB,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CAAC,IAAI,EACvB,KAAK,EACL,YAAY,IAAI,kBAAkB,CAAC,UAAU,EAC7C,IAAI,CAAC,EAAE,CACR,CAAC;YACJ,CAAC;YAED,0CAA0C;YAC1C,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC7C,KAAK,IAAI,kBAAkB,CAAC,YAAY,CAAC;YAE3C,qBAAqB,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,KAAK,EAChB,iBAAgC,EAChC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACxB,EAAE;YAChB,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAErD,IAAI,QAA4D,CAAC;YAEjE,yEAAyE;YACzE,IAAI,iBAAiB,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GACV,iBAAiB,CAAC,MAAM;oBACxB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;wBACZ,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;qBAClB,CAAC,CAAC,CAAC;gBAEN,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACxC,MAAM,EACN,iBAAiB,CAAC,QAAQ,CAC3B,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB;wFACwE;gBACxE,OAAO,MAAO,QAAkC,CAC9C,iBAAiB,EACjB,IAAI,CAAC,IAAI,CACV,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,QAAQ,CACnB,iBAAiB,EACjB,IAAI,CAAC,IAAI,EACT,KAAK,EAAE,gBAA+B,EAAE,EAAE;gBACxC,OAAO,MAAM,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CACvB,QAAsC,EACtC,KAAsC;QAEtC,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/D,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,+BAA+B,EACzE;gBACE,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,qBAAkC;QACxD,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAClE;gBACE,MAAM,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CACxB,MAAmE,EACnE,cAAuB;QAEvB,IAAI,gBAAgB,CAAC;QACrB,IAAI,CAAC;YACH,gBAAgB,GAAG,MAAM,MAAM,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;YAEnB,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAC/B,CAAC;gBAEF,sBAAsB,CACpB,MAAM,KAAK,SAAS,EACpB,kBAAkB,cAAc,aAAa,CAC9C,CAAC;gBAEF,MAAM,iCAAiC,CACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAC3B,MAAM,EACN,KAAK,CACN,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAC/D;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,EACD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EACxD;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,CACF,CAAC;QACJ,CAAC;QAED,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"resolved-task.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/resolved-task.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import type { ArgumentType, ArgumentValue } from "../../../types/arguments.js";
1
2
  export declare function formatTaskId(taskId: string | string[]): string;
2
3
  export declare function getActorFragment(pluginId: string | undefined): string;
4
+ export declare function isOptionalArgumentType(type: ArgumentType): boolean;
5
+ export declare function isArgumentRequired(type: ArgumentType, defaultValue: ArgumentValue | ArgumentValue[] | undefined): boolean;
3
6
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAM9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAM9D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAErE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAElE;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,SAAS,GACxD,OAAO,CAET"}
@@ -7,4 +7,10 @@ export function formatTaskId(taskId) {
7
7
  export function getActorFragment(pluginId) {
8
8
  return pluginId !== undefined ? `Plugin ${pluginId} is` : "You are";
9
9
  }
10
+ export function isOptionalArgumentType(type) {
11
+ return type.endsWith("_WITHOUT_DEFAULT");
12
+ }
13
+ export function isArgumentRequired(type, defaultValue) {
14
+ return defaultValue === undefined && !isOptionalArgumentType(type);
15
+ }
10
16
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,QAAQ,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,QAAQ,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAkB;IACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAkB,EAClB,YAAyD;IAEzD,OAAO,YAAY,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { HardhatError } from "@nomicfoundation/hardhat-errors";
2
2
  import { validateArgumentName, validateArgumentShortName, validateArgumentValue, } from "../arguments.js";
3
- import { formatTaskId } from "./utils.js";
3
+ import { isArgumentRequired, formatTaskId } from "./utils.js";
4
4
  export function validateId(id) {
5
5
  if (id.length === 0) {
6
6
  throw new HardhatError(HardhatError.ERRORS.CORE.TASK_DEFINITIONS.EMPTY_TASK_ID);
@@ -54,8 +54,8 @@ export function validatePositionalArgument({ name, type, defaultValue, isVariadi
54
54
  });
55
55
  }
56
56
  if (lastArg !== undefined &&
57
- lastArg.defaultValue !== undefined &&
58
- defaultValue === undefined) {
57
+ !isArgumentRequired(lastArg.type, lastArg.defaultValue) &&
58
+ isArgumentRequired(type, defaultValue)) {
59
59
  throw new HardhatError(HardhatError.ERRORS.CORE.TASK_DEFINITIONS.REQUIRED_ARG_AFTER_OPTIONAL, {
60
60
  name,
61
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/validations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../../../../../src/internal/core/tasks/validations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"using-hardhat2-plugin-errors.d.ts","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,SAAgB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;;CAwBxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,GAAG,SAAS,CAyC3E;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAIrD"}
1
+ {"version":3,"file":"using-hardhat2-plugin-errors.d.ts","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,SAAgB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;;CAqBxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM,GAAG,SAAS,CAyC3E;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAIrD"}
@@ -10,21 +10,18 @@ export class UsingHardhat2PluginError extends CustomError {
10
10
  if (callerPath !== undefined) {
11
11
  message = `You are trying to use a Hardhat 2 plugin in a Hardhat 3 project.
12
12
 
13
- This file is part of a Hardhat 2 plugin calling an API that was removed in Hardhat 3: ${styleText("bold", callerPath)}
14
-
15
- Please read https://hardhat.org/migrate-from-hardhat2 to learn how to migrate your project to Hardhat 3.
16
- `;
13
+ This file is part of a Hardhat 2 plugin calling an API that was removed in Hardhat 3: ${styleText("bold", callerPath)}`;
17
14
  }
18
15
  else {
19
- message = `You are trying to use a Hardhat 2 plugin in a Hardhat 3 project.
20
-
21
- Check the stack trace below to identify which plugin is causing this.
22
-
23
- Please read https://hardhat.org/migrate-from-hardhat2 to learn how to migrate your project to Hardhat 3.
24
- `;
16
+ message = `You are trying to use a Hardhat 2 plugin in a Hardhat 3 project.`;
25
17
  }
26
18
  super(message);
27
- this.callerRelativePath = callerPath;
19
+ // Use a non-enumerable property so that `console.error(error)` does not
20
+ // print `{ callerRelativePath: '…' }` after the stack trace.
21
+ Object.defineProperty(this, "callerRelativePath", {
22
+ value: callerPath,
23
+ enumerable: false,
24
+ });
28
25
  }
29
26
  }
30
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"using-hardhat2-plugin-errors.js","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvC,kBAAkB,CAAqB;IACvD;QACE,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAE3C,IAAI,OAAe,CAAC;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG;;wFAEwE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;;;CAGpH,CAAC;QACE,CAAC;aAAM,CAAC;YACN,OAAO,GAAG;;;;;CAKf,CAAC;QACE,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;IACvC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;;;;;;WAQG;QACH,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;QAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C;kEAC8D;IAC9D,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"using-hardhat2-plugin-errors.js","sourceRoot":"","sources":["../../../src/internal/using-hardhat2-plugin-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvC,kBAAkB,CAAqB;IACvD;QACE,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAE3C,IAAI,OAAe,CAAC;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG;;wFAEwE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACpH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,kEAAkE,CAAC;QAC/E,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAChD,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;;;;;;WAQG;QACH,MAAM,sBAAsB,GAC1B,iDAAiD,CAAC;QAEpD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C;kEAC8D;IAC9D,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACvC,CAAC"}
@@ -46,14 +46,33 @@ export interface BuildOptions {
46
46
  * and produce separate compilation passes.
47
47
  */
48
48
  scope?: BuildScope;
49
+ /**
50
+ * If `true`, a clean up process is run after a successful build.
51
+ *
52
+ * The clean up deletes all the orphan artifacts that aren't reachable from
53
+ * the provided `rootFilePaths`.
54
+ *
55
+ * When building with `"contracts"` scope, it also updates the top-level
56
+ * `artifacts.d.ts`.
57
+ *
58
+ * Only use this option when the provided `rootFilePaths` represent the
59
+ * entire set of contracts for the scope you are using (i.e. not during
60
+ * partial builds). Otherwise, you'll delete artifacts generated in previous
61
+ * builds, despite their sources still being available.
62
+ */
63
+ cleanupArtifacts?: boolean;
49
64
  }
65
+ /**
66
+ * The resolved BuildOptions used to run a build.
67
+ */
68
+ export type ResolvedBuildOptions = Required<BuildOptions>;
50
69
  /**
51
70
  * The options of the `getCompilationJobs` method.
52
71
  *
53
72
  * Note that this option object includes a `quiet` property, as this process
54
73
  * may require downloading compilers, and potentially printing some output.
55
74
  */
56
- export type GetCompilationJobsOptions = Omit<BuildOptions, "removeUnusedArtifacts">;
75
+ export type GetCompilationJobsOptions = Omit<BuildOptions, "cleanupArtifacts">;
57
76
  /**
58
77
  * The options of the `runCompilationJob` method.
59
78
  */
@@ -351,10 +370,11 @@ export interface SolidityBuildSystem {
351
370
  * used.
352
371
  *
353
372
  * @param rootFilePaths All the root files of the project.
373
+ * @returns The list of artifact paths that remain after the cleanup.
354
374
  */
355
375
  cleanupArtifacts(rootFilePaths: string[], options?: {
356
376
  scope?: BuildScope;
357
- }): Promise<void>;
377
+ }): Promise<string[]>;
358
378
  /**
359
379
  * Compiles a build info, returning the output of the compilation, verbatim,
360
380
  * as `solc` returns it.
@@ -1 +1 @@
1
- {"version":3,"file":"build-system.d.ts","sourceRoot":"","sources":["../../../../src/types/solidity/build-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-system.d.ts","sourceRoot":"","sources":["../../../../src/types/solidity/build-system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,YAAY,EACZ,OAAO,GAAG,cAAc,CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,iCAAiC;IAC3C;;OAEG;IACH,oCAAoC,yCAAyC;IAE7E;;OAEG;IACH,0CAA0C,+CAA+C;IAEzF;;OAEG;IACH,2BAA2B,gCAAgC;IAE3D;;OAEG;IACH,qDAAqD,0DAA0D;IAE/G;;OAEG;IACH,oCAAoC,yCAAyC;IAE7E;;OAEG;IACH,oDAAoD,yDAAyD;IAE7G;;OAEG;IACH,gCAAgC,qCAAqC;CACtE;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,KAAK,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0DACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,oCAAoC,CAAC;CAChF;AAED,MAAM,WAAW,gEACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,0CAA0C,CAAC;IACrF,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,mDACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,2BAA2B,CAAC;IACtE,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,yEACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,qDAAqD,CAAC;IAChG,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,4DACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,oCAAoC,CAAC;CAChF;AAED,MAAM,WAAW,0EACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,oDAAoD,CAAC;IAC/F,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,uDACf,SAAQ,+BAA+B;IACvC,MAAM,EAAE,iCAAiC,CAAC,gCAAgC,CAAC;CAC5E;AAED,MAAM,MAAM,2BAA2B,GACnC,0DAA0D,GAC1D,gEAAgE,GAChE,mDAAmD,GACnD,yEAAyE,GACzE,4DAA4D,GAC5D,0EAA0E,GAC1E,uDAAuD,CAAC;AAE5D;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,eAAe,GACvB,uBAAuB,GACvB,yBAAyB,GACzB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,mBAAmB,CAAC,aAAa,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,0BAA0B,EAAE,MAAM,EAAE,CAAC;IACrC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC,aAAa,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD;;OAEG;IACH,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnD;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE9C;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CACH,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,2BAA2B,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvE;;;;;OAKG;IACH,uBAAuB,CACrB,WAAW,EAAE,2BAA2B,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GACtE,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE/C;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAChB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,2BAA2B,GAAG,wBAAwB,CAAC,CAAC;IAEnE;;;;;;;;;;;OAWG;IACH,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEpC;;;;;;;OAOG;IACH,kBAAkB,CAChB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,mBAAmB,EAC1B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;OAcG;IACH,aAAa,CACX,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,gBAAgB,CACd,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAErB;;;;;;;;;;;OAWG;IACH,gBAAgB,CACd,SAAS,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-system.js","sourceRoot":"","sources":["../../../../src/types/solidity/build-system.ts"],"names":[],"mappings":"AA2FA,MAAM,CAAN,IAAY,iCAmCX;AAnCD,WAAY,iCAAiC;IAC3C;;OAEG;IACH,kHAA6E,CAAA;IAE7E;;OAEG;IACH,8HAAyF,CAAA;IAEzF;;OAEG;IACH,gGAA2D,CAAA;IAE3D;;OAEG;IACH,oJAA+G,CAAA;IAE/G;;OAEG;IACH,kHAA6E,CAAA;IAE7E;;OAEG;IACH,kJAA6G,CAAA;IAE7G;;OAEG;IACH,0GAAqE,CAAA;AACvE,CAAC,EAnCW,iCAAiC,KAAjC,iCAAiC,QAmC5C;AAyDD;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,sDAA+B,CAAA;IAC/B,sDAA+B,CAAA;AACjC,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
1
+ {"version":3,"file":"build-system.js","sourceRoot":"","sources":["../../../../src/types/solidity/build-system.ts"],"names":[],"mappings":"AA6GA,MAAM,CAAN,IAAY,iCAmCX;AAnCD,WAAY,iCAAiC;IAC3C;;OAEG;IACH,kHAA6E,CAAA;IAE7E;;OAEG;IACH,8HAAyF,CAAA;IAEzF;;OAEG;IACH,gGAA2D,CAAA;IAE3D;;OAEG;IACH,oJAA+G,CAAA;IAE/G;;OAEG;IACH,kHAA6E,CAAA;IAE7E;;OAEG;IACH,kJAA6G,CAAA;IAE7G;;OAEG;IACH,0GAAqE,CAAA;AACvE,CAAC,EAnCW,iCAAiC,KAAjC,iCAAiC,QAmC5C;AAyDD;;GAEG;AACH,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,sDAA+B,CAAA;IAC/B,sDAA+B,CAAA;AACjC,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.",
5
5
  "homepage": "https://hardhat.org",
6
6
  "repository": {
@@ -57,6 +57,7 @@
57
57
  "src/",
58
58
  "templates/",
59
59
  "console.sol",
60
+ "skills/",
60
61
  "CHANGELOG.md",
61
62
  "LICENSE",
62
63
  "README.md"
@@ -77,8 +78,8 @@
77
78
  },
78
79
  "dependencies": {
79
80
  "@nomicfoundation/edr": "0.12.0-next.33",
80
- "@nomicfoundation/hardhat-errors": "^3.0.13",
81
- "@nomicfoundation/hardhat-utils": "^4.1.2",
81
+ "@nomicfoundation/hardhat-errors": "^3.0.14",
82
+ "@nomicfoundation/hardhat-utils": "^4.1.3",
82
83
  "@nomicfoundation/hardhat-vendored": "^3.0.4",
83
84
  "@nomicfoundation/hardhat-zod-utils": "^3.0.5",
84
85
  "@nomicfoundation/solidity-analyzer": "^0.1.1",
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: hardhat
3
+ description: Use when working with Hardhat 3 projects — writing or modifying Solidity tests, TypeScript tests, or any code touching hardhat.config.ts, the `hardhat` import, or `network.create()`. Covers test-layer choice, forge-std cheatcodes, the network connection API, `networkHelpers`, and the compile-then-typecheck workflow. For toolbox-specific guidance (clients, contract calls, assertions), also load the matching `hardhat-toolbox-*` skill.
4
+ metadata:
5
+ package: "hardhat"
6
+ ---
7
+
8
+ # Hardhat 3
9
+
10
+ This skill covers Hardhat 3 itself. The toolbox layer (clients, contract interaction, ecosystem-specific assertions) lives in companion skills — load whichever matches the project:
11
+
12
+ - `@nomicfoundation/hardhat-toolbox-viem` → also load the **`hardhat-toolbox-viem`** skill.
13
+ - `@nomicfoundation/hardhat-toolbox-mocha-ethers` → also load the **`hardhat-toolbox-mocha-ethers`** skill.
14
+
15
+ ## Test organization
16
+
17
+ Hardhat 3 supports two distinct test layers:
18
+
19
+ **Solidity tests** (`.t.sol` files in `contracts/`, or any `.sol` file in `test/`) are the default choice for unit tests on individual contracts. They run directly in the EVM, compile-check against the real ABI, and have access to cheatcodes for EVM state manipulation. Any public function whose name starts with `test` is executed as a test case.
20
+
21
+ **TypeScript tests** (`.ts` files in `test/`) are the right choice when a test requires off-chain orchestration: multi-contract interactions, fixture reuse across a large suite, assertions about gas or ETH balances from the outside, or integration scenarios driven by external state.
22
+
23
+ Reach for TypeScript only when Solidity isn't enough. Solidity tests cover all contract logic; TypeScript tests cover the end-to-end flow as a user or script would experience it.
24
+
25
+ ```bash
26
+ hardhat test # run all tests (Solidity + TypeScript)
27
+ hardhat test solidity # Solidity tests only
28
+ ```
29
+
30
+ TypeScript tests are run either with `hardhat test nodejs` or with `hardhat test mocha`, depending on the toolbox or plugins being used: the viem-based toolbox uses `nodejs` while the ethers+mocha toolbox uses `mocha`.
31
+
32
+ Pass `--coverage` to collect Solidity coverage while running tests. It works on the main `hardhat test` task as well as the `solidity` and TypeScript subtasks (`nodejs` / `mocha`), so you can scope coverage to a single test layer when needed.
33
+
34
+ ## Solidity tests
35
+
36
+ Any contract that contains at least one `test*` function is treated as a test contract. Use `forge-std` (if present in `package.json`) for assertions and cheatcodes:
37
+
38
+ ```solidity
39
+ // SPDX-License-Identifier: UNLICENSED
40
+ pragma solidity ^0.8.28;
41
+
42
+ import { Test } from "forge-std/Test.sol";
43
+ import { Counter } from "./Counter.sol";
44
+
45
+ contract CounterTest is Test {
46
+ Counter counter;
47
+
48
+ function setUp() public {
49
+ counter = new Counter();
50
+ }
51
+
52
+ function test_InitialValueIsZero() public view {
53
+ assertEq(counter.x(), 0);
54
+ }
55
+
56
+ function test_IncByIncreasesByAmount() public {
57
+ counter.incBy(3);
58
+ assertEq(counter.x(), 3);
59
+ }
60
+
61
+ // Fuzz test: Hardhat runs this with many random inputs automatically
62
+ function testFuzz_Inc(uint8 x) public {
63
+ for (uint8 i = 0; i < x; i++) {
64
+ counter.inc();
65
+ }
66
+ require(counter.x() == x, "Value after calling inc x times should be x");
67
+ }
68
+ }
69
+ ```
70
+
71
+ The `vm` object (from `forge-std/Test.sol`) exposes cheatcodes for EVM state manipulation. Commonly used ones:
72
+
73
+ | Cheatcode | Effect |
74
+ | --- | --- |
75
+ | `vm.prank(addr)` | Sets `msg.sender` for the next call only |
76
+ | `vm.startPrank(addr)` / `vm.stopPrank()` | Sets `msg.sender` for a range of calls |
77
+ | `vm.deal(addr, amount)` | Sets an account's ETH balance |
78
+ | `vm.warp(timestamp)` | Sets `block.timestamp` |
79
+ | `vm.roll(blockNum)` | Sets `block.number` |
80
+ | `vm.expectRevert(...)` | Asserts the next call reverts |
81
+ | `vm.expectEmit(...)` | Asserts the next call emits a specific event |
82
+
83
+ ## TypeScript tests and the network connection
84
+
85
+ The central object in a TypeScript test is the **network connection**, created by `network.create()`. Toolbox plugins extend it with helper objects (e.g. `viem` or `ethers`, plus `networkHelpers`):
86
+
87
+ ```ts
88
+ import { network } from "hardhat";
89
+
90
+ const { networkHelpers } = await network.create();
91
+ // Toolbox plugins also expose viem / ethers on this object;
92
+ // see the matching hardhat-toolbox-* skill.
93
+ ```
94
+
95
+ Hardhat 3 only works with ESM, so top-level `await` is available. Each call to `network.create()` produces an **isolated blockchain state**. A top-level network connection can be used when the same connection and its associated state can be shared across all tests in the file. For more isolation, you can create a new connection for each test suite or even each test case.
96
+
97
+ ### `networkHelpers`: EVM state manipulation
98
+
99
+ `networkHelpers` wraps all of Hardhat's development-only helpers behind a typed, ergonomic API. Prefer it over raw JSON-RPC calls:
100
+
101
+ ```ts
102
+ // Time
103
+ await networkHelpers.time.increase(60); // mine a block 60 s ahead
104
+ await networkHelpers.time.increaseTo(target); // mine to a specific timestamp
105
+ const now = await networkHelpers.time.latest(); // latest block timestamp
106
+ await networkHelpers.time.setNextBlockTimestamp(ts); // set without mining
107
+
108
+ // Blocks
109
+ await networkHelpers.mine(); // mine one block
110
+ await networkHelpers.mine(5); // mine several blocks
111
+
112
+ // Accounts
113
+ await networkHelpers.impersonateAccount(addr);
114
+ await networkHelpers.setBalance(addr, 10n ** 18n);
115
+
116
+ // Block parameters
117
+ await networkHelpers.setPrevRandao(value); // set block.prevrandao for the next block
118
+ await networkHelpers.setNextBlockBaseFeePerGas(baseFee);
119
+
120
+ // Fixtures
121
+ //
122
+ // loadFixture runs the setup once and snapshots the state. Subsequent calls
123
+ // restore the snapshot instead of re-deploying, much faster for large suites.
124
+ // The deploy step inside the fixture is toolbox-specific (e.g.
125
+ // viem.deployContract, an ethers ContractFactory) — see the matching
126
+ // hardhat-toolbox-* skill.
127
+ async function deployCounter() {
128
+ // ... toolbox-specific deploy ...
129
+ return { counter };
130
+ }
131
+
132
+ const { counter } = await networkHelpers.loadFixture(deployCounter);
133
+ // loadFixture requires a named function for caching to work (not an
134
+ // arrow/anonymous function)
135
+
136
+ // Snapshots (manual)
137
+ const snap = await networkHelpers.takeSnapshot();
138
+ // ... do things ...
139
+ await snap.restore();
140
+ ```
141
+
142
+ For plain TypeScript assertions (equality, arrays, types), use `node:assert/strict`. For ecosystem-specific assertions (reverts, events, balance changes), see the matching `hardhat-toolbox-*` skill.
143
+
144
+ ## Typechecking
145
+
146
+ Generated contract types are derived from the compiled ABI (viem in the viem toolbox, TypeChain in the ethers toolbox), so recompile first, then typecheck. The example below uses npm; swap `npx` for whichever package manager runner this project uses:
147
+
148
+ ```bash
149
+ npx hardhat build && npx tsc --noEmit
150
+ ```
151
+
152
+ The compiler will catch wrong argument types, missing arguments, and invalid options (e.g. `value` on a non-payable function) before you even start the test runner. Make this a habit: it surfaces many mistakes faster than running the full test suite.
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: hardhat-toolbox-mocha-ethers
3
+ description: Use alongside the `hardhat` skill when the project depends on `@nomicfoundation/hardhat-toolbox-mocha-ethers`. Covers the ethers helpers exposed on `network.create()`, contract interaction (`ethers.deployContract`, calling functions, `connect`), TypeChain-typed contract instances, and the chai matchers from `@nomicfoundation/hardhat-ethers-chai-matchers` (`.to.emit`, `.to.be.revertedWith*`, `.to.changeEtherBalance(s)`).
4
+ metadata:
5
+ package: "@nomicfoundation/hardhat-toolbox-mocha-ethers"
6
+ ---
7
+
8
+ # Hardhat toolbox: ethers + Mocha
9
+
10
+ This skill builds on the core **`hardhat`** skill. Load that first for test organization, the `network.create()` shape, `networkHelpers`, fixtures, and the typechecking workflow. Everything below hangs off the connection returned by `network.create()`.
11
+
12
+ This stack runs tests under **Mocha** (global `describe` / `it`) and asserts with **chai**. Mocha doesn't await `describe` callbacks, so the connection is set up at the top of the file with top-level `await`:
13
+
14
+ ```ts
15
+ import { expect } from "chai";
16
+ import { network } from "hardhat";
17
+
18
+ const { ethers, networkHelpers } = await network.create();
19
+
20
+ describe("Counter", function () {
21
+ // ...
22
+ });
23
+ ```
24
+
25
+ One connection per file is the norm. State isolation between tests comes from `loadFixture` (see the `hardhat` skill), not from creating a fresh connection per `describe`.
26
+
27
+ ## `ethers`: signers and contract interaction
28
+
29
+ Contract types are generated by **TypeChain** from the compiled ABI. Run `hardhat build` before typechecking so the types reflect the latest contracts.
30
+
31
+ ```ts
32
+ // Provider (read-only chain data)
33
+ const blockNumber = await ethers.provider.getBlockNumber();
34
+ const balance = await ethers.provider.getBalance("0xabc...");
35
+
36
+ // Signers (for sending transactions)
37
+ const [owner, alice, bob] = await ethers.getSigners(); // default funded accounts
38
+
39
+ // Utilities
40
+ const oneEth = ethers.parseEther("1.0");
41
+
42
+ // Deploy a contract, returns a fully typed instance.
43
+ // Pass constructor args as the second argument, and (optionally) a signer
44
+ // other than the default as the third.
45
+ const counter = await ethers.deployContract("Counter");
46
+ const counterWithArgs = await ethers.deployContract("Counter", [42n]);
47
+ const counterFromAlice = await ethers.deployContract("Counter", [], alice);
48
+
49
+ // Read state and call functions. Args and return types are type-checked
50
+ // against the ABI at compile time; passing wrong types or wrong argument
51
+ // counts is a TypeScript error.
52
+ const value = await counter.x();
53
+ await counter.inc();
54
+ await counter.incBy(3n);
55
+
56
+ // Send from a different signer
57
+ await counter.connect(alice).inc();
58
+
59
+ // Send ETH along with a payable call
60
+ await counter.deposit({ value: oneEth });
61
+
62
+ // Attach to an already-deployed contract
63
+ const existing = await ethers.getContractAt("Counter", "0xabc...");
64
+ ```
65
+
66
+ Inside a `loadFixture` setup function (see the `hardhat` skill for the surrounding pattern), `ethers.deployContract` is the canonical deploy step:
67
+
68
+ ```ts
69
+ async function deployCounterFixture() {
70
+ const counter = await ethers.deployContract("Counter");
71
+ return { counter };
72
+ }
73
+
74
+ const { counter } = await networkHelpers.loadFixture(deployCounterFixture);
75
+ ```
76
+
77
+ To send a transaction from an arbitrary address (not one of the default-funded accounts), fund it for gas and pull an impersonating signer with `ethers.getImpersonatedSigner` — it handles the impersonation internally, no separate `networkHelpers.impersonateAccount` call needed:
78
+
79
+ ```ts
80
+ const addr = "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
81
+ await networkHelpers.setBalance(addr, ethers.parseEther("1.0"));
82
+ const signer = await ethers.getImpersonatedSigner(addr);
83
+ await counter.connect(signer).inc();
84
+ ```
85
+
86
+ ## Chai matchers: Ethereum-specific assertions
87
+
88
+ The `hardhat-ethers-chai-matchers` plugin extends chai's `expect` with matchers for transactions, events, and balance changes. Pass the **transaction promise** (the result of a write call, unawaited) into `expect`:
89
+
90
+ ```ts
91
+ import { expect } from "chai";
92
+
93
+ // Reverts
94
+ await expect(counter.connect(banned).inc()).to.revert(ethers);
95
+ await expect(counter.connect(banned).inc()).to.be.revertedWith(
96
+ "only the owner can increment the counter",
97
+ );
98
+ await expect(counter.connect(banned).inc()).to.be.revertedWithCustomError(
99
+ counter,
100
+ "Unauthorized",
101
+ );
102
+ await expect(counter.connect(banned).inc())
103
+ .to.be.revertedWithCustomError(counter, "Unauthorized")
104
+ .withArgs(banned.address);
105
+
106
+ // Events
107
+ await expect(counter.inc()).to.emit(counter, "Increment");
108
+ await expect(counter.inc()).to.emit(counter, "Increment").withArgs(1n);
109
+
110
+ // ETH balance changes (positive = received, negative = spent, before gas)
111
+ await expect(game.claim()).to.changeEtherBalance(ethers, winner, PRIZE);
112
+ await expect(game.claim()).to.changeEtherBalances(
113
+ ethers,
114
+ [winner, loser],
115
+ [PRIZE, -STAKE],
116
+ );
117
+ ```
118
+
119
+ For plain assertions (equality, arrays, types), use `expect` from chai directly without the Ethereum matchers.