hardhat 3.0.13 → 3.0.14
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/CHANGELOG.md +8 -0
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js +80 -78
- package/dist/src/internal/builtin-plugins/solidity/build-system/build-system.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js +27 -6
- package/dist/src/internal/builtin-plugins/solidity/tasks/build.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js +6 -2
- package/dist/src/internal/builtin-plugins/solidity-test/helpers.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js +2 -1
- package/dist/src/internal/builtin-plugins/solidity-test/index.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js +2 -0
- package/dist/src/internal/builtin-plugins/solidity-test/reporter.js.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js +7 -1
- package/dist/src/internal/builtin-plugins/solidity-test/task-action.js.map +1 -1
- package/dist/src/internal/builtin-plugins/test/index.d.ts.map +1 -1
- package/dist/src/internal/builtin-plugins/test/index.js +2 -1
- package/dist/src/internal/builtin-plugins/test/index.js.map +1 -1
- package/dist/src/internal/constants.d.ts +1 -0
- package/dist/src/internal/constants.d.ts.map +1 -1
- package/dist/src/internal/constants.js +1 -0
- package/dist/src/internal/constants.js.map +1 -1
- package/package.json +2 -2
- package/src/internal/builtin-plugins/solidity/build-system/build-system.ts +132 -127
- package/src/internal/builtin-plugins/solidity/tasks/build.ts +40 -6
- package/src/internal/builtin-plugins/solidity-test/helpers.ts +7 -1
- package/src/internal/builtin-plugins/solidity-test/index.ts +2 -1
- package/src/internal/builtin-plugins/solidity-test/reporter.ts +2 -0
- package/src/internal/builtin-plugins/solidity-test/task-action.ts +8 -1
- package/src/internal/builtin-plugins/test/index.ts +2 -1
- package/src/internal/constants.ts +2 -0
- package/templates/hardhat-3/01-node-test-runner-viem/package.json +2 -2
- package/templates/hardhat-3/02-mocha-ethers/package.json +2 -2
- package/templates/hardhat-3/03-minimal/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-action.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity-test/task-action.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACL,gBAAgB,IAAI,YAAY,EAChC,kBAAkB,IAAI,gBAAgB,EACtC,eAAe,IAAI,cAAc,GAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,IAAI,YAAY,EAChC,kBAAkB,IAAI,gBAAgB,EACtC,eAAe,IAAI,cAAc,GAClC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,gDAAgD,GACjD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAUlC,MAAM,gBAAgB,GAA+C,KAAK,EACxE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EACpD,GAAG,EACH,EAAE;IACF,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;IAEF,6FAA6F;IAC7F,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAE7B,iGAAiG;IACjG,0DAA0D;IAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;IAEhC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,EACzD;YACE,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW;SAClB,CACF,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,EAAE,aAAa,EAAE,GAAgC,MAAM,GAAG,CAAC,KAAK;SACnE,OAAO,CAAC,OAAO,CAAC;SAChB,GAAG,CAAC;QACH,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"task-action.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/solidity-test/task-action.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACL,gBAAgB,IAAI,YAAY,EAChC,kBAAkB,IAAI,gBAAgB,EACtC,eAAe,IAAI,cAAc,GAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,IAAI,YAAY,EAChC,kBAAkB,IAAI,gBAAgB,EACtC,eAAe,IAAI,cAAc,GAClC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,EAC9B,gDAAgD,GACjD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAUlC,MAAM,gBAAgB,GAA+C,KAAK,EACxE,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EACpD,GAAG,EACH,EAAE;IACF,sBAAsB,CACpB,GAAG,YAAY,uCAAuC,EACtD,2EAA2E,CAC5E,CAAC;IAEF,6FAA6F;IAC7F,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAE7B,iGAAiG;IACjG,0DAA0D;IAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;IAEhC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,EACzD;YACE,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,WAAW;SAClB,CACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,MAAM,EAAE,aAAa,EAAE,GAAgC,MAAM,GAAG,CAAC,KAAK;SACnE,OAAO,CAAC,OAAO,CAAC;SAChB,GAAG,CAAC;QACH,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACL,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,8CAA8C;IAC9C,MAAM,YAAY,GAGb,EAAE,CAAC;IACR,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,OAAO,CAAU,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,IAAI,6BAA6B,CAAC,YAAY,CAAC,CAAC;QACxE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,0BAA0B,GAAG,IAAI,GAAG,CACxC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACnD,UAAU,CAAC,EAAE,CAAC,MAAM;QACpB,cAAc;KACf,CAAC,CACH,CAAC;IAEF,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE;QACtD,IACE,aAAa,CAAC,QAAQ,CACpB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CACvD;YACD,mBAAmB,CAAC,UAAU,CAAC,EAC/B,CAAC;YACD,sBAAsB,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,YAAY;SAC9B,MAAM,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAC7B,aAAa,CAAC,QAAQ,CACpB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CACvD,CACF;SACA,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;SAC3D,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IACpD,IAAI,mBAAoD,CAAC;IACzD,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,mBAAmB,GAAG;YACpB,YAAY,EAAE;gBACZ,2BAA2B,EAAE,KAAK,EAAE,YAA0B,EAAE,EAAE;oBAChE,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACjC,CAAC;oBAEF,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,MAAM,gDAAgD,CAAC;QACrD,SAAS;QACT,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;QAClC,MAAM,EAAE,kBAAkB;QAC1B,SAAS;QACT,aAAa,EAAE,mBAAmB;QAClC,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,GAAG,CAAC,aAAa,CAAC,QAAQ;KAC9C,CAAC,CAAC;IACL,MAAM,aAAa,GAA6B;QAC9C,UAAU;QACV,eAAe,EAAE,KAAK;KACvB,CAAC;IACF,MAAM,OAAO,GACX,8BAA8B,CAAC,kBAAkB,CAAC,CAAC;IAErD,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,GAAG,CACnB,SAAS,EACT,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAChD,YAAY,EACZ,MAAM,EACN,aAAa,EACb,0BAA0B,EAC1B,OAAO,CACR,CAAC;IAEF,MAAM,kBAAkB,GAAG,SAAS;SACjC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAgB,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;gBACtE,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAEjC,2DAA2D;YAC3D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7D,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CACpC,CAAC;YAEF,uEAAuE;YACvE,oBAAoB;YACpB,MAAM,eAAe,GAAG,oCAAoC,CAC1D,SAAS,EACT,gBAAgB,CACjB,CAAC;YAEF,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;gBAC1C,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClB,YAAY,CAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAC5D,CAAC;IAEJ,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAC1C,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CACvC,CAAC;IAEF,IAAI,CAAC;QACH,sEAAsE;QACtE,iCAAiC;QACjC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE1B,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEnC,qDAAqD;IACrD,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAEjC,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,aAAa,EAAE,aAsCpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ArgumentType } from "../../../types/arguments.js";
|
|
2
|
+
import { DEFAULT_VERBOSITY } from "../../constants.js";
|
|
2
3
|
import { task } from "../../core/config.js";
|
|
3
4
|
import "./type-extensions.js";
|
|
4
5
|
const hardhatPlugin = {
|
|
@@ -32,7 +33,7 @@ const hardhatPlugin = {
|
|
|
32
33
|
name: "verbosity",
|
|
33
34
|
shortName: "v",
|
|
34
35
|
description: "Verbosity level of the test output",
|
|
35
|
-
defaultValue:
|
|
36
|
+
defaultValue: DEFAULT_VERBOSITY,
|
|
36
37
|
})
|
|
37
38
|
.setAction(async () => import("./task-action.js"))
|
|
38
39
|
.build(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAkB;IACnC,EAAE,EAAE,cAAc;IAClB,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC;KAClD;IACD,KAAK,EAAE;QACL,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;aAC1B,mBAAmB,CAAC;YACnB,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wCAAwC;YACrD,YAAY,EAAE,EAAE;SACjB,CAAC;aACD,SAAS,CAAC;YACT,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,mDAAmD;YAChE,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,SAAS,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oDAAoD;YACjE,IAAI,EAAE,YAAY,CAAC,sBAAsB;YACzC,YAAY,EAAE,SAAS;SACxB,CAAC;aACD,OAAO,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qDAAqD;SACnE,CAAC;aACD,QAAQ,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,oCAAoC;YACjD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/builtin-plugins/test/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAkB;IACnC,EAAE,EAAE,cAAc;IAClB,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC;KAClD;IACD,KAAK,EAAE;QACL,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;aAC1B,mBAAmB,CAAC;YACnB,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,wCAAwC;YACrD,YAAY,EAAE,EAAE;SACjB,CAAC;aACD,SAAS,CAAC;YACT,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,mDAAmD;YAChE,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,SAAS,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oDAAoD;YACjE,IAAI,EAAE,YAAY,CAAC,sBAAsB;YACzC,YAAY,EAAE,SAAS;SACxB,CAAC;aACD,OAAO,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,qDAAqD;SACnE,CAAC;aACD,QAAQ,CAAC;YACR,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,oCAAoC;YACjD,YAAY,EAAE,iBAAiB;SAChC,CAAC;aACD,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;aACjD,KAAK,EAAE;KACX;IACD,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACpD,UAAU,EAAE,SAAS;CACtB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -6,4 +6,5 @@ export declare const GENERIC_CHAIN_TYPE = "generic";
|
|
|
6
6
|
export declare const L1_CHAIN_TYPE = "l1";
|
|
7
7
|
export declare const OPTIMISM_CHAIN_TYPE = "op";
|
|
8
8
|
export declare const DEFAULT_NETWORK_NAME = "default";
|
|
9
|
+
export declare const DEFAULT_VERBOSITY = 2;
|
|
9
10
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,oBAAoB,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAEhF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,iBAAiB,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,CAAC,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.14",
|
|
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://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat",
|
|
6
6
|
"repository": {
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@nomicfoundation/edr": "0.12.0-next.14",
|
|
75
|
-
"@nomicfoundation/hardhat-errors": "^3.0.
|
|
75
|
+
"@nomicfoundation/hardhat-errors": "^3.0.4",
|
|
76
76
|
"@nomicfoundation/hardhat-utils": "^3.0.5",
|
|
77
77
|
"@nomicfoundation/hardhat-zod-utils": "^3.0.1",
|
|
78
78
|
"@nomicfoundation/solidity-analyzer": "^0.1.1",
|
|
@@ -176,15 +176,8 @@ export class SolidityBuildSystemImplementation implements SolidityBuildSystem {
|
|
|
176
176
|
..._options,
|
|
177
177
|
};
|
|
178
178
|
|
|
179
|
-
const spinner = createSpinner({
|
|
180
|
-
text: `Compiling your Solidity ${options.scope}...`,
|
|
181
|
-
enabled: true,
|
|
182
|
-
});
|
|
183
|
-
|
|
184
179
|
await this.#downloadConfiguredCompilers(options.quiet);
|
|
185
180
|
|
|
186
|
-
spinner.start();
|
|
187
|
-
|
|
188
181
|
const { buildProfile } = this.#getBuildProfile(options.buildProfile);
|
|
189
182
|
|
|
190
183
|
const compilationJobsResult = await this.getCompilationJobs(
|
|
@@ -193,161 +186,173 @@ export class SolidityBuildSystemImplementation implements SolidityBuildSystem {
|
|
|
193
186
|
);
|
|
194
187
|
|
|
195
188
|
if ("reason" in compilationJobsResult) {
|
|
196
|
-
spinner.stop();
|
|
197
189
|
return compilationJobsResult;
|
|
198
190
|
}
|
|
199
191
|
|
|
200
|
-
const
|
|
201
|
-
|
|
192
|
+
const spinner = createSpinner({
|
|
193
|
+
text: `Compiling your Solidity ${options.scope}...`,
|
|
194
|
+
enabled: true,
|
|
195
|
+
});
|
|
196
|
+
spinner.start();
|
|
202
197
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
198
|
+
try {
|
|
199
|
+
const { compilationJobsPerFile, indexedIndividualJobs } =
|
|
200
|
+
compilationJobsResult;
|
|
206
201
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
runnableCompilationJobs.map(async (runnableCompilationJob) =>
|
|
211
|
-
runnableCompilationJob.getBuildId(),
|
|
212
|
-
),
|
|
213
|
-
);
|
|
202
|
+
const runnableCompilationJobs = [
|
|
203
|
+
...new Set(compilationJobsPerFile.values()),
|
|
204
|
+
];
|
|
214
205
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
runnableCompilationJob,
|
|
220
|
-
|
|
221
|
-
|
|
206
|
+
// NOTE: We precompute the build ids in parallel here, which are cached
|
|
207
|
+
// internally in each compilation job
|
|
208
|
+
await Promise.all(
|
|
209
|
+
runnableCompilationJobs.map(async (runnableCompilationJob) =>
|
|
210
|
+
runnableCompilationJob.getBuildId(),
|
|
211
|
+
),
|
|
212
|
+
);
|
|
222
213
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
{
|
|
231
|
-
concurrency: options.concurrency,
|
|
232
|
-
// An error when running the compiler is not a compilation failure, but
|
|
233
|
-
// a fatal failure trying to run it, so we just throw on the first error
|
|
234
|
-
stopOnError: true,
|
|
235
|
-
},
|
|
236
|
-
);
|
|
214
|
+
const results: CompilationResult[] = await pMap(
|
|
215
|
+
runnableCompilationJobs,
|
|
216
|
+
async (runnableCompilationJob) => {
|
|
217
|
+
const { output, compiler } = await this.runCompilationJob(
|
|
218
|
+
runnableCompilationJob,
|
|
219
|
+
options,
|
|
220
|
+
);
|
|
237
221
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
222
|
+
return {
|
|
223
|
+
compilationJob: runnableCompilationJob,
|
|
224
|
+
compilerOutput: output,
|
|
225
|
+
cached: false,
|
|
226
|
+
compiler,
|
|
227
|
+
};
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
concurrency: options.concurrency,
|
|
231
|
+
// An error when running the compiler is not a compilation failure, but
|
|
232
|
+
// a fatal failure trying to run it, so we just throw on the first error
|
|
233
|
+
stopOnError: true,
|
|
234
|
+
},
|
|
235
|
+
);
|
|
242
236
|
|
|
243
|
-
|
|
244
|
-
|
|
237
|
+
const uncachedResults = results.filter((result) => !result.cached);
|
|
238
|
+
const uncachedSuccessfulResults = uncachedResults.filter(
|
|
239
|
+
(result) => !this.#hasCompilationErrors(result.compilerOutput),
|
|
240
|
+
);
|
|
245
241
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
ReadonlyMap<string, string[]>
|
|
249
|
-
> = new Map();
|
|
242
|
+
const isSuccessfulBuild =
|
|
243
|
+
uncachedResults.length === uncachedSuccessfulResults.length;
|
|
250
244
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const emitArtifactsResult = await this.emitArtifacts(
|
|
256
|
-
compilationResult.compilationJob,
|
|
257
|
-
compilationResult.compilerOutput,
|
|
258
|
-
options,
|
|
259
|
-
);
|
|
245
|
+
const contractArtifactsGeneratedByCompilationJob: Map<
|
|
246
|
+
CompilationJob,
|
|
247
|
+
ReadonlyMap<string, string[]>
|
|
248
|
+
> = new Map();
|
|
260
249
|
|
|
261
|
-
|
|
250
|
+
if (isSuccessfulBuild) {
|
|
251
|
+
log("Emitting artifacts of successful build");
|
|
252
|
+
await Promise.all(
|
|
253
|
+
results.map(async (compilationResult) => {
|
|
254
|
+
const emitArtifactsResult = await this.emitArtifacts(
|
|
255
|
+
compilationResult.compilationJob,
|
|
256
|
+
compilationResult.compilerOutput,
|
|
257
|
+
options,
|
|
258
|
+
);
|
|
262
259
|
|
|
263
|
-
|
|
264
|
-
compilationResult.compilationJob,
|
|
265
|
-
artifactsPerFile,
|
|
266
|
-
);
|
|
260
|
+
const { artifactsPerFile } = emitArtifactsResult;
|
|
267
261
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
emitArtifactsResult,
|
|
273
|
-
buildProfile.isolated,
|
|
274
|
-
options.scope,
|
|
275
|
-
);
|
|
276
|
-
}),
|
|
277
|
-
);
|
|
262
|
+
contractArtifactsGeneratedByCompilationJob.set(
|
|
263
|
+
compilationResult.compilationJob,
|
|
264
|
+
artifactsPerFile,
|
|
265
|
+
);
|
|
278
266
|
|
|
279
|
-
|
|
280
|
-
|
|
267
|
+
// Cache the results
|
|
268
|
+
await this.#cacheCompilationResult(
|
|
269
|
+
indexedIndividualJobs,
|
|
270
|
+
compilationResult,
|
|
271
|
+
emitArtifactsResult,
|
|
272
|
+
buildProfile.isolated,
|
|
273
|
+
options.scope,
|
|
274
|
+
);
|
|
275
|
+
}),
|
|
276
|
+
);
|
|
281
277
|
|
|
282
|
-
|
|
278
|
+
await saveCache(this.#options.cachePath, this.#compileCache);
|
|
279
|
+
}
|
|
283
280
|
|
|
284
|
-
|
|
281
|
+
spinner.stop();
|
|
285
282
|
|
|
286
|
-
|
|
287
|
-
const contractArtifactsGenerated = isSuccessfulBuild
|
|
288
|
-
? contractArtifactsGeneratedByCompilationJob.get(result.compilationJob)
|
|
289
|
-
: new Map();
|
|
283
|
+
const resultsMap: Map<string, FileBuildResult> = new Map();
|
|
290
284
|
|
|
291
|
-
|
|
292
|
-
contractArtifactsGenerated
|
|
293
|
-
|
|
294
|
-
|
|
285
|
+
for (const result of results) {
|
|
286
|
+
const contractArtifactsGenerated = isSuccessfulBuild
|
|
287
|
+
? contractArtifactsGeneratedByCompilationJob.get(
|
|
288
|
+
result.compilationJob,
|
|
289
|
+
)
|
|
290
|
+
: new Map();
|
|
295
291
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
)
|
|
300
|
-
);
|
|
292
|
+
assertHardhatInvariant(
|
|
293
|
+
contractArtifactsGenerated !== undefined,
|
|
294
|
+
"We emitted contract artifacts for all the jobs if the build was successful",
|
|
295
|
+
);
|
|
301
296
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
297
|
+
const errors = await Promise.all(
|
|
298
|
+
(result.compilerOutput.errors ?? []).map((error) =>
|
|
299
|
+
this.remapCompilerError(result.compilationJob, error, true),
|
|
300
|
+
),
|
|
301
|
+
);
|
|
306
302
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
resultsMap.set(formatRootPath(userSourceName, root), {
|
|
312
|
-
type: FileBuildResultType.BUILD_FAILURE,
|
|
313
|
-
compilationJob: result.compilationJob,
|
|
314
|
-
errors,
|
|
315
|
-
});
|
|
303
|
+
this.#printSolcErrorsAndWarnings(errors);
|
|
304
|
+
const successfulResult = !this.#hasCompilationErrors(
|
|
305
|
+
result.compilerOutput,
|
|
306
|
+
);
|
|
316
307
|
|
|
317
|
-
|
|
318
|
-
|
|
308
|
+
for (const [
|
|
309
|
+
userSourceName,
|
|
310
|
+
root,
|
|
311
|
+
] of result.compilationJob.dependencyGraph.getRoots().entries()) {
|
|
312
|
+
if (!successfulResult) {
|
|
313
|
+
resultsMap.set(formatRootPath(userSourceName, root), {
|
|
314
|
+
type: FileBuildResultType.BUILD_FAILURE,
|
|
315
|
+
compilationJob: result.compilationJob,
|
|
316
|
+
errors,
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (result.cached) {
|
|
323
|
+
resultsMap.set(formatRootPath(userSourceName, root), {
|
|
324
|
+
type: FileBuildResultType.CACHE_HIT,
|
|
325
|
+
compilationJob: result.compilationJob,
|
|
326
|
+
contractArtifactsGenerated:
|
|
327
|
+
contractArtifactsGenerated.get(userSourceName) ?? [],
|
|
328
|
+
warnings: errors,
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
319
333
|
|
|
320
|
-
if (result.cached) {
|
|
321
334
|
resultsMap.set(formatRootPath(userSourceName, root), {
|
|
322
|
-
type: FileBuildResultType.
|
|
335
|
+
type: FileBuildResultType.BUILD_SUCCESS,
|
|
323
336
|
compilationJob: result.compilationJob,
|
|
324
337
|
contractArtifactsGenerated:
|
|
325
338
|
contractArtifactsGenerated.get(userSourceName) ?? [],
|
|
326
339
|
warnings: errors,
|
|
327
340
|
});
|
|
328
|
-
|
|
329
|
-
continue;
|
|
330
341
|
}
|
|
331
|
-
|
|
332
|
-
resultsMap.set(formatRootPath(userSourceName, root), {
|
|
333
|
-
type: FileBuildResultType.BUILD_SUCCESS,
|
|
334
|
-
compilationJob: result.compilationJob,
|
|
335
|
-
contractArtifactsGenerated:
|
|
336
|
-
contractArtifactsGenerated.get(userSourceName) ?? [],
|
|
337
|
-
warnings: errors,
|
|
338
|
-
});
|
|
339
342
|
}
|
|
340
|
-
}
|
|
341
343
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
344
|
+
if (!options.quiet) {
|
|
345
|
+
if (isSuccessfulBuild) {
|
|
346
|
+
await this.#printCompilationResult(runnableCompilationJobs, {
|
|
347
|
+
scope: options.scope,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
347
350
|
}
|
|
348
|
-
}
|
|
349
351
|
|
|
350
|
-
|
|
352
|
+
return resultsMap;
|
|
353
|
+
} finally {
|
|
354
|
+
spinner.stop();
|
|
355
|
+
}
|
|
351
356
|
}
|
|
352
357
|
|
|
353
358
|
public async getCompilationJobs(
|
|
@@ -2,6 +2,7 @@ import type { HardhatRuntimeEnvironment } from "../../../../types/hre.js";
|
|
|
2
2
|
import type { BuildScope } from "../../../../types/solidity.js";
|
|
3
3
|
import type { NewTaskActionFunction } from "../../../../types/tasks.js";
|
|
4
4
|
|
|
5
|
+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
|
|
5
6
|
import { resolveFromRoot } from "@nomicfoundation/hardhat-utils/path";
|
|
6
7
|
|
|
7
8
|
import { throwIfSolidityBuildFailed } from "../build-results.js";
|
|
@@ -20,15 +21,45 @@ const buildAction: NewTaskActionFunction<BuildActionArguments> = async (
|
|
|
20
21
|
args: BuildActionArguments,
|
|
21
22
|
hre,
|
|
22
23
|
) => {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
let contractRootPaths: string[] = [];
|
|
25
|
+
let testRootPaths: string[] = [];
|
|
26
|
+
const allUsedFiles: string[] = [];
|
|
25
27
|
|
|
26
28
|
if (args.noContracts === false) {
|
|
27
|
-
|
|
29
|
+
const { rootPaths, usedFiles } = await buildForScope(
|
|
30
|
+
"contracts",
|
|
31
|
+
args,
|
|
32
|
+
hre,
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
contractRootPaths = rootPaths;
|
|
36
|
+
allUsedFiles.push(...usedFiles);
|
|
28
37
|
}
|
|
29
38
|
|
|
30
39
|
if (args.noTests === false) {
|
|
31
|
-
|
|
40
|
+
const { rootPaths, usedFiles } = await buildForScope("tests", args, hre);
|
|
41
|
+
|
|
42
|
+
testRootPaths = rootPaths;
|
|
43
|
+
allUsedFiles.push(...usedFiles);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// If there's an unused file we fail
|
|
47
|
+
if (args.files.length !== 0) {
|
|
48
|
+
const files = new Set(args.files);
|
|
49
|
+
const usedFiles = new Set(allUsedFiles);
|
|
50
|
+
const unusedFiles = files.difference(usedFiles);
|
|
51
|
+
|
|
52
|
+
if (unusedFiles.size > 0) {
|
|
53
|
+
const list = [...unusedFiles]
|
|
54
|
+
.sort()
|
|
55
|
+
.map((f) => `- ${f}`)
|
|
56
|
+
.join("\n");
|
|
57
|
+
|
|
58
|
+
throw new HardhatError(
|
|
59
|
+
HardhatError.ERRORS.CORE.SOLIDITY.UNRECOGNIZED_FILES_NOT_COMPILED,
|
|
60
|
+
{ files: list },
|
|
61
|
+
);
|
|
62
|
+
}
|
|
32
63
|
}
|
|
33
64
|
|
|
34
65
|
return { contractRootPaths, testRootPaths };
|
|
@@ -39,6 +70,8 @@ async function buildForScope(
|
|
|
39
70
|
{ force, files, quiet, defaultBuildProfile }: BuildActionArguments,
|
|
40
71
|
{ solidity, globalOptions }: HardhatRuntimeEnvironment,
|
|
41
72
|
) {
|
|
73
|
+
const usedFiles = [];
|
|
74
|
+
|
|
42
75
|
// If no specific files are passed, it means a full compilation, i.e. all source files
|
|
43
76
|
const isFullCompilation = files.length === 0;
|
|
44
77
|
|
|
@@ -58,12 +91,13 @@ async function buildForScope(
|
|
|
58
91
|
continue;
|
|
59
92
|
}
|
|
60
93
|
|
|
94
|
+
usedFiles.push(file);
|
|
61
95
|
rootPaths.push(rootPath);
|
|
62
96
|
}
|
|
63
97
|
|
|
64
98
|
// If a file list has been passed but none match this scope, we don't run the build
|
|
65
99
|
if (rootPaths.length === 0) {
|
|
66
|
-
return
|
|
100
|
+
return { rootPaths, usedFiles };
|
|
67
101
|
}
|
|
68
102
|
}
|
|
69
103
|
|
|
@@ -83,7 +117,7 @@ async function buildForScope(
|
|
|
83
117
|
await solidity.cleanupArtifacts(rootPaths, { scope });
|
|
84
118
|
}
|
|
85
119
|
|
|
86
|
-
return rootPaths;
|
|
120
|
+
return { rootPaths, usedFiles };
|
|
87
121
|
}
|
|
88
122
|
|
|
89
123
|
export default buildAction;
|
|
@@ -16,11 +16,12 @@ import {
|
|
|
16
16
|
l1HardforkLatest,
|
|
17
17
|
IncludeTraces,
|
|
18
18
|
FsAccessPermission,
|
|
19
|
+
CollectStackTraces,
|
|
19
20
|
} from "@nomicfoundation/edr";
|
|
20
21
|
import { hexStringToBytes } from "@nomicfoundation/hardhat-utils/hex";
|
|
21
22
|
import chalk from "chalk";
|
|
22
23
|
|
|
23
|
-
import { OPTIMISM_CHAIN_TYPE } from "../../constants.js";
|
|
24
|
+
import { DEFAULT_VERBOSITY, OPTIMISM_CHAIN_TYPE } from "../../constants.js";
|
|
24
25
|
|
|
25
26
|
import { type Colorizer, formatArtifactId } from "./formatters.js";
|
|
26
27
|
|
|
@@ -126,6 +127,8 @@ export async function solidityTestConfigToSolidityTestRunnerConfigArgs({
|
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
129
|
|
|
130
|
+
const shouldAlwaysCollectStackTraces = verbosity > DEFAULT_VERBOSITY;
|
|
131
|
+
|
|
129
132
|
return {
|
|
130
133
|
projectRoot,
|
|
131
134
|
...config,
|
|
@@ -144,6 +147,9 @@ export async function solidityTestConfigToSolidityTestRunnerConfigArgs({
|
|
|
144
147
|
forkBlockNumber,
|
|
145
148
|
rpcEndpoints,
|
|
146
149
|
generateGasReport,
|
|
150
|
+
collectStackTraces: shouldAlwaysCollectStackTraces
|
|
151
|
+
? CollectStackTraces.Always
|
|
152
|
+
: CollectStackTraces.OnFailure,
|
|
147
153
|
};
|
|
148
154
|
}
|
|
149
155
|
|
|
@@ -2,6 +2,7 @@ import type { HardhatPlugin } from "../../../types/plugins.js";
|
|
|
2
2
|
|
|
3
3
|
import { ArgumentType } from "hardhat/types/arguments";
|
|
4
4
|
|
|
5
|
+
import { DEFAULT_VERBOSITY } from "../../constants.js";
|
|
5
6
|
import { task } from "../../core/config.js";
|
|
6
7
|
|
|
7
8
|
import "./type-extensions.js";
|
|
@@ -38,7 +39,7 @@ const hardhatPlugin: HardhatPlugin = {
|
|
|
38
39
|
name: "verbosity",
|
|
39
40
|
shortName: "v",
|
|
40
41
|
description: "Verbosity level of the test output",
|
|
41
|
-
defaultValue:
|
|
42
|
+
defaultValue: DEFAULT_VERBOSITY,
|
|
42
43
|
})
|
|
43
44
|
.setAction(async () => import("./task-action.js"))
|
|
44
45
|
.build(),
|
|
@@ -302,9 +302,11 @@ export async function* testReporter(
|
|
|
302
302
|
case "UnsafeToReplay":
|
|
303
303
|
if (stackTrace.globalForkLatest === true) {
|
|
304
304
|
yield indenter.t`Stack Trace Warning: ${colorizer.grey("The test is not safe to replay because a fork url without a fork block number was provided.")}\n`;
|
|
305
|
+
yield indenter.t`Try rerunning your tests with -vvv or above.\n`;
|
|
305
306
|
}
|
|
306
307
|
if (stackTrace.impureCheatcodes.length > 0) {
|
|
307
308
|
yield indenter.t`Stack Trace Warning: ${colorizer.grey(`The test is not safe to replay because it uses impure cheatcodes: ${stackTrace.impureCheatcodes.join(", ")}`)}\n`;
|
|
309
|
+
yield indenter.t`Try rerunning your tests with -vvv or above.\n`;
|
|
308
310
|
}
|
|
309
311
|
break;
|
|
310
312
|
case "HeuristicFailed":
|
|
@@ -79,12 +79,19 @@ const runSolidityTests: NewTaskActionFunction<TestActionArguments> = async (
|
|
|
79
79
|
);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
// Run the build task for contract files if needed
|
|
83
|
+
if (noCompile !== true) {
|
|
84
|
+
await hre.tasks.getTask("build").run({
|
|
85
|
+
noTests: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
82
89
|
// Run the build task for test files
|
|
83
90
|
const { testRootPaths }: { testRootPaths: string[] } = await hre.tasks
|
|
84
91
|
.getTask("build")
|
|
85
92
|
.run({
|
|
86
93
|
files: testFiles,
|
|
87
|
-
noContracts:
|
|
94
|
+
noContracts: true,
|
|
88
95
|
});
|
|
89
96
|
console.log();
|
|
90
97
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { HardhatPlugin } from "../../../types/plugins.js";
|
|
2
2
|
|
|
3
3
|
import { ArgumentType } from "../../../types/arguments.js";
|
|
4
|
+
import { DEFAULT_VERBOSITY } from "../../constants.js";
|
|
4
5
|
import { task } from "../../core/config.js";
|
|
5
6
|
|
|
6
7
|
import "./type-extensions.js";
|
|
@@ -36,7 +37,7 @@ const hardhatPlugin: HardhatPlugin = {
|
|
|
36
37
|
name: "verbosity",
|
|
37
38
|
shortName: "v",
|
|
38
39
|
description: "Verbosity level of the test output",
|
|
39
|
-
defaultValue:
|
|
40
|
+
defaultValue: DEFAULT_VERBOSITY,
|
|
40
41
|
})
|
|
41
42
|
.setAction(async () => import("./task-action.js"))
|
|
42
43
|
.build(),
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Node Test Runner and Viem",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.0.
|
|
8
|
+
"hardhat": "workspace:^3.0.14",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-viem": "workspace:^5.0.1",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.5",
|
|
11
11
|
"@types/node": "^22.8.5",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@nomicfoundation/hardhat-node-test-runner": "workspace:^3.0.7",
|
|
21
21
|
"@nomicfoundation/hardhat-viem": "workspace:^3.0.0",
|
|
22
22
|
"@nomicfoundation/hardhat-viem-assertions": "workspace:^3.0.0",
|
|
23
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
23
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.7",
|
|
24
24
|
"@nomicfoundation/ignition-core": "workspace:^3.0.5"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"description": "A TypeScript Hardhat project using Mocha and Ethers.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"hardhat": "workspace:^3.0.
|
|
8
|
+
"hardhat": "workspace:^3.0.14",
|
|
9
9
|
"@nomicfoundation/hardhat-toolbox-mocha-ethers": "workspace:^3.0.1",
|
|
10
10
|
"@nomicfoundation/hardhat-ignition": "workspace:^3.0.5",
|
|
11
11
|
"@types/chai": "^4.2.0",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@nomicfoundation/hardhat-mocha": "workspace:^3.0.7",
|
|
28
28
|
"@nomicfoundation/hardhat-network-helpers": "workspace:^3.0.1",
|
|
29
29
|
"@nomicfoundation/hardhat-typechain": "workspace:^3.0.0",
|
|
30
|
-
"@nomicfoundation/hardhat-verify": "workspace:^3.0.
|
|
30
|
+
"@nomicfoundation/hardhat-verify": "workspace:^3.0.7",
|
|
31
31
|
"@nomicfoundation/ignition-core": "workspace:^3.0.5"
|
|
32
32
|
}
|
|
33
33
|
}
|