@nomicfoundation/hardhat-ethers-chai-matchers 3.0.0-next.30 → 3.0.0-next.32

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 (46) hide show
  1. package/dist/src/internal/add-chai-matchers.d.ts.map +1 -1
  2. package/dist/src/internal/add-chai-matchers.js +4 -2
  3. package/dist/src/internal/add-chai-matchers.js.map +1 -1
  4. package/dist/src/internal/constants.d.ts +2 -1
  5. package/dist/src/internal/constants.d.ts.map +1 -1
  6. package/dist/src/internal/constants.js +2 -1
  7. package/dist/src/internal/constants.js.map +1 -1
  8. package/dist/src/internal/matchers/changeEtherBalance.d.ts +2 -2
  9. package/dist/src/internal/matchers/changeEtherBalance.d.ts.map +1 -1
  10. package/dist/src/internal/matchers/changeEtherBalance.js +7 -16
  11. package/dist/src/internal/matchers/changeEtherBalance.js.map +1 -1
  12. package/dist/src/internal/matchers/changeEtherBalances.d.ts +2 -2
  13. package/dist/src/internal/matchers/changeEtherBalances.d.ts.map +1 -1
  14. package/dist/src/internal/matchers/changeEtherBalances.js +5 -5
  15. package/dist/src/internal/matchers/changeEtherBalances.js.map +1 -1
  16. package/dist/src/internal/matchers/changeTokenBalance.d.ts +2 -2
  17. package/dist/src/internal/matchers/changeTokenBalance.d.ts.map +1 -1
  18. package/dist/src/internal/matchers/changeTokenBalance.js +8 -12
  19. package/dist/src/internal/matchers/changeTokenBalance.js.map +1 -1
  20. package/dist/src/internal/matchers/reverted/legacyReverted.d.ts +2 -0
  21. package/dist/src/internal/matchers/reverted/legacyReverted.d.ts.map +1 -0
  22. package/dist/src/internal/matchers/reverted/legacyReverted.js +12 -0
  23. package/dist/src/internal/matchers/reverted/legacyReverted.js.map +1 -0
  24. package/dist/src/internal/matchers/reverted/revert.d.ts +2 -0
  25. package/dist/src/internal/matchers/reverted/revert.d.ts.map +1 -0
  26. package/dist/src/internal/matchers/reverted/{reverted.js → revert.js} +8 -8
  27. package/dist/src/internal/matchers/reverted/revert.js.map +1 -0
  28. package/dist/src/internal/utils/balance.d.ts +2 -2
  29. package/dist/src/internal/utils/balance.d.ts.map +1 -1
  30. package/dist/src/internal/utils/balance.js +2 -6
  31. package/dist/src/internal/utils/balance.js.map +1 -1
  32. package/dist/src/type-extensions.d.ts +6 -6
  33. package/dist/src/type-extensions.d.ts.map +1 -1
  34. package/package.json +8 -8
  35. package/src/internal/add-chai-matchers.ts +4 -2
  36. package/src/internal/constants.ts +2 -1
  37. package/src/internal/matchers/changeEtherBalance.ts +15 -17
  38. package/src/internal/matchers/changeEtherBalances.ts +6 -10
  39. package/src/internal/matchers/changeTokenBalance.ts +10 -13
  40. package/src/internal/matchers/reverted/legacyReverted.ts +19 -0
  41. package/src/internal/matchers/reverted/{reverted.ts → revert.ts} +7 -7
  42. package/src/internal/utils/balance.ts +4 -9
  43. package/src/type-extensions.ts +6 -6
  44. package/dist/src/internal/matchers/reverted/reverted.d.ts +0 -2
  45. package/dist/src/internal/matchers/reverted/reverted.d.ts.map +0 -1
  46. package/dist/src/internal/matchers/reverted/reverted.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"add-chai-matchers.d.ts","sourceRoot":"","sources":["../../../src/internal/add-chai-matchers.ts"],"names":[],"mappings":"AAoBA,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
1
+ {"version":3,"file":"add-chai-matchers.d.ts","sourceRoot":"","sources":["../../../src/internal/add-chai-matchers.ts"],"names":[],"mappings":"AAqBA,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
@@ -10,7 +10,8 @@ import { supportHexEqual } from "./matchers/hexEqual.js";
10
10
  import { supportProperAddress } from "./matchers/properAddress.js";
11
11
  import { supportProperHex } from "./matchers/properHex.js";
12
12
  import { supportProperPrivateKey } from "./matchers/properPrivateKey.js";
13
- import { supportReverted } from "./matchers/reverted/reverted.js";
13
+ import { supportLegacyReverted } from "./matchers/reverted/legacyReverted.js";
14
+ import { supportRevert } from "./matchers/reverted/revert.js";
14
15
  import { supportRevertedWith } from "./matchers/reverted/revertedWith.js";
15
16
  import { supportRevertedWithCustomError } from "./matchers/reverted/revertedWithCustomError.js";
16
17
  import { supportRevertedWithPanic } from "./matchers/reverted/revertedWithPanic.js";
@@ -31,7 +32,8 @@ function hardhatChaiMatchers(chai, chaiUtils) {
31
32
  supportChangeEtherBalance(chai.Assertion, chaiUtils);
32
33
  supportChangeEtherBalances(chai.Assertion, chaiUtils);
33
34
  supportChangeTokenBalance(chai.Assertion, chaiUtils);
34
- supportReverted(chai.Assertion, chaiUtils);
35
+ supportLegacyReverted(chai.Assertion, chaiUtils);
36
+ supportRevert(chai.Assertion, chaiUtils);
35
37
  supportRevertedWith(chai.Assertion, chaiUtils);
36
38
  supportRevertedWithCustomError(chai.Assertion, chaiUtils);
37
39
  supportRevertedWithPanic(chai.Assertion, chaiUtils);
@@ -1 +1 @@
1
- {"version":3,"file":"add-chai-matchers.js","sourceRoot":"","sources":["../../../src/internal/add-chai-matchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,UAAU,eAAe;IAC7B,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzB,GAAG,CAAC,cAAc,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAqB,EACrB,SAAyB;IAEzB,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5C,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3C,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/C,8BAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,4BAA4B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"add-chai-matchers.js","sourceRoot":"","sources":["../../../src/internal/add-chai-matchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,UAAU,eAAe;IAC7B,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzB,GAAG,CAAC,cAAc,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAqB,EACrB,SAAyB;IAEzB,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5C,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrD,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/C,8BAA8B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,4BAA4B,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC"}
@@ -5,7 +5,8 @@ export declare const CHANGE_ETHER_BALANCES_MATCHER = "changeEtherBalances";
5
5
  export declare const CHANGE_TOKEN_BALANCE_MATCHER = "changeTokenBalance";
6
6
  export declare const CHANGE_TOKEN_BALANCES_MATCHER = "changeTokenBalances";
7
7
  export declare const EMIT_MATCHER = "emit";
8
- export declare const REVERTED_MATCHER = "reverted";
8
+ export declare const LEGACY_REVERTED_MATCHER = "reverted";
9
+ export declare const REVERT_MATCHER = "revert";
9
10
  export declare const REVERTED_WITH_MATCHER = "revertedWith";
10
11
  export declare const REVERTED_WITH_CUSTOM_ERROR_MATCHER = "revertedWithCustomError";
11
12
  export declare const REVERTED_WITH_PANIC_MATCHER = "revertedWithPanic";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,8CAA8C,CAAC;AAC7E,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,kCAAkC,4BAA4B,CAAC;AAC5E,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,+BAA+B,0BAA0B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,8CAA8C,CAAC;AAC7E,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AACnE,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,kCAAkC,4BAA4B,CAAC;AAC5E,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,+BAA+B,0BAA0B,CAAC"}
@@ -5,7 +5,8 @@ export const CHANGE_ETHER_BALANCES_MATCHER = "changeEtherBalances";
5
5
  export const CHANGE_TOKEN_BALANCE_MATCHER = "changeTokenBalance";
6
6
  export const CHANGE_TOKEN_BALANCES_MATCHER = "changeTokenBalances";
7
7
  export const EMIT_MATCHER = "emit";
8
- export const REVERTED_MATCHER = "reverted";
8
+ export const LEGACY_REVERTED_MATCHER = "reverted";
9
+ export const REVERT_MATCHER = "revert";
9
10
  export const REVERTED_WITH_MATCHER = "revertedWith";
10
11
  export const REVERTED_WITH_CUSTOM_ERROR_MATCHER = "revertedWithCustomError";
11
12
  export const REVERTED_WITH_PANIC_MATCHER = "revertedWithPanic";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,2CAA2C,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACpD,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,+BAA+B,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/internal/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,2CAA2C,CAAC;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACpD,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,+BAA+B,GAAG,uBAAuB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { BalanceChangeOptions } from "../utils/balance.js";
2
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
3
  import type { Addressable } from "ethers/address";
3
4
  import type { TransactionResponse } from "ethers/providers";
4
- import type { EthereumProvider } from "hardhat/types/providers";
5
5
  export declare function supportChangeEtherBalance(Assertion: Chai.AssertionStatic, chaiUtils: Chai.ChaiUtils): void;
6
- export declare function getBalanceChange(provider: EthereumProvider, transaction: TransactionResponse | Promise<TransactionResponse> | (() => Promise<TransactionResponse> | TransactionResponse), account: Addressable | string, options?: BalanceChangeOptions): Promise<bigint>;
6
+ export declare function getBalanceChange(ethers: HardhatEthers, transaction: TransactionResponse | Promise<TransactionResponse> | (() => Promise<TransactionResponse> | TransactionResponse), account: Addressable | string, options?: BalanceChangeOptions): Promise<bigint>;
7
7
  //# sourceMappingURL=changeEtherBalance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeEtherBalance.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAgBhE,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CAoDN;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EACP,mBAAmB,GACnB,OAAO,CAAC,mBAAmB,CAAC,GAC5B,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,EAC9D,OAAO,EAAE,WAAW,GAAG,MAAM,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
1
+ {"version":3,"file":"changeEtherBalance.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgB5D,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CAoDN;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,WAAW,EACP,mBAAmB,GACnB,OAAO,CAAC,mBAAmB,CAAC,GAC5B,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC,EAC9D,OAAO,EAAE,WAAW,GAAG,MAAM,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAmDjB"}
@@ -1,5 +1,4 @@
1
1
  import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
2
- import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
3
2
  import { isObject } from "@nomicfoundation/hardhat-utils/lang";
4
3
  import { toBigInt } from "ethers/utils";
5
4
  import { CHANGE_ETHER_BALANCE_MATCHER } from "../constants.js";
@@ -8,7 +7,7 @@ import { assertCanBeConvertedToBigint, assertIsNotNull, } from "../utils/asserts
8
7
  import { buildAssert } from "../utils/build-assert.js";
9
8
  import { preventAsyncMatcherChaining } from "../utils/prevent-chaining.js";
10
9
  export function supportChangeEtherBalance(Assertion, chaiUtils) {
11
- Assertion.addMethod(CHANGE_ETHER_BALANCE_MATCHER, function (provider, account, balanceChange, options) {
10
+ Assertion.addMethod(CHANGE_ETHER_BALANCE_MATCHER, function (ethers, account, balanceChange, options) {
12
11
  // capture negated flag before async code executes; see buildAssert's jsdoc
13
12
  const negated = this.__flags.negate;
14
13
  const subject = this._obj;
@@ -24,7 +23,7 @@ export function supportChangeEtherBalance(Assertion, chaiUtils) {
24
23
  }
25
24
  };
26
25
  const derivedPromise = Promise.all([
27
- getBalanceChange(provider, subject, account, options),
26
+ getBalanceChange(ethers, subject, account, options),
28
27
  getAddressOf(account),
29
28
  ]).then(checkBalanceChange);
30
29
  this.then = derivedPromise.then.bind(derivedPromise);
@@ -33,7 +32,7 @@ export function supportChangeEtherBalance(Assertion, chaiUtils) {
33
32
  return this;
34
33
  });
35
34
  }
36
- export async function getBalanceChange(provider, transaction, account, options) {
35
+ export async function getBalanceChange(ethers, transaction, account, options) {
37
36
  let txResponse;
38
37
  if (typeof transaction === "function") {
39
38
  txResponse = await transaction();
@@ -44,22 +43,14 @@ export async function getBalanceChange(provider, transaction, account, options)
44
43
  const txReceipt = await txResponse.wait();
45
44
  assertIsNotNull(txReceipt, "txReceipt");
46
45
  const txBlockNumber = txReceipt.blockNumber;
47
- const block = await provider.request({
48
- method: "eth_getBlockByHash",
49
- params: [txReceipt.blockHash, false],
50
- });
46
+ const block = await ethers.provider.getBlock(txReceipt.blockHash, false);
47
+ assertHardhatInvariant(block !== null, "The block doesn't exist");
51
48
  assertHardhatInvariant(isObject(block) &&
52
49
  Array.isArray(block.transactions) &&
53
50
  block.transactions.length === 1, "There should be only 1 transaction in the block");
54
51
  const address = await getAddressOf(account);
55
- const balanceAfterHex = await provider.request({
56
- method: "eth_getBalance",
57
- params: [address, numberToHexString(txBlockNumber)],
58
- });
59
- const balanceBeforeHex = await provider.request({
60
- method: "eth_getBalance",
61
- params: [address, numberToHexString(txBlockNumber - 1)],
62
- });
52
+ const balanceAfterHex = await ethers.provider.getBalance(address, txBlockNumber);
53
+ const balanceBeforeHex = await ethers.provider.getBalance(address, txBlockNumber - 1);
63
54
  assertCanBeConvertedToBigint(balanceAfterHex);
64
55
  assertCanBeConvertedToBigint(balanceBeforeHex);
65
56
  const balanceAfter = BigInt(balanceAfterHex);
@@ -1 +1 @@
1
- {"version":3,"file":"changeEtherBalance.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeEtherBalance.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalance.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { BalanceChangeOptions } from "../utils/balance.js";
2
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
3
  import type { Addressable } from "ethers/address";
3
4
  import type { TransactionResponse } from "ethers/providers";
4
- import type { EthereumProvider } from "hardhat/types/providers";
5
5
  export declare function supportChangeEtherBalances(Assertion: Chai.AssertionStatic, chaiUtils: Chai.ChaiUtils): void;
6
- export declare function getBalanceChanges(provider: EthereumProvider, transaction: TransactionResponse | Promise<TransactionResponse>, accounts: Array<Addressable | string>, options?: BalanceChangeOptions): Promise<bigint[]>;
6
+ export declare function getBalanceChanges(ethers: HardhatEthers, transaction: TransactionResponse | Promise<TransactionResponse>, accounts: Array<Addressable | string>, options?: BalanceChangeOptions): Promise<bigint[]>;
7
7
  //# sourceMappingURL=changeEtherBalances.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeEtherBalances.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAahE,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CA2FN;AA4BD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/D,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB"}
1
+ {"version":3,"file":"changeEtherBalances.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAa5D,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CA2FN;AA4BD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/D,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB"}
@@ -8,7 +8,7 @@ import { buildAssert } from "../utils/build-assert.js";
8
8
  import { ordinal } from "../utils/ordinal.js";
9
9
  import { preventAsyncMatcherChaining } from "../utils/prevent-chaining.js";
10
10
  export function supportChangeEtherBalances(Assertion, chaiUtils) {
11
- Assertion.addMethod(CHANGE_ETHER_BALANCES_MATCHER, function (provider, accounts, balanceChanges, options) {
11
+ Assertion.addMethod(CHANGE_ETHER_BALANCES_MATCHER, function (ethers, accounts, balanceChanges, options) {
12
12
  // capture negated flag before async code executes; see buildAssert's jsdoc
13
13
  const negated = this.__flags.negate;
14
14
  let subject = this._obj;
@@ -43,7 +43,7 @@ export function supportChangeEtherBalances(Assertion, chaiUtils) {
43
43
  }
44
44
  };
45
45
  const derivedPromise = Promise.all([
46
- getBalanceChanges(provider, subject, accounts, options),
46
+ getBalanceChanges(ethers, subject, accounts, options),
47
47
  getAddresses(accounts),
48
48
  ]).then(checkBalanceChanges);
49
49
  this.then = derivedPromise.then.bind(derivedPromise);
@@ -69,13 +69,13 @@ function validateInput(obj, accounts, balanceChanges) {
69
69
  throw e;
70
70
  }
71
71
  }
72
- export async function getBalanceChanges(provider, transaction, accounts, options) {
72
+ export async function getBalanceChanges(ethers, transaction, accounts, options) {
73
73
  const txResponse = await transaction;
74
74
  const txReceipt = await txResponse.wait();
75
75
  assertIsNotNull(txReceipt, "txReceipt");
76
76
  const txBlockNumber = txReceipt.blockNumber;
77
- const balancesAfter = await getBalances(provider, accounts, txBlockNumber);
78
- const balancesBefore = await getBalances(provider, accounts, txBlockNumber - 1);
77
+ const balancesAfter = await getBalances(ethers, accounts, txBlockNumber);
78
+ const balancesBefore = await getBalances(ethers, accounts, txBlockNumber - 1);
79
79
  const txFees = await getTxFees(accounts, txResponse, options);
80
80
  return balancesAfter.map((balance, ind) => balance + txFees[ind] - balancesBefore[ind]);
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changeEtherBalances.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeEtherBalances.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeEtherBalances.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
1
2
  import type { Addressable, BaseContract, BaseContractMethod, BigNumberish, ContractTransactionResponse } from "ethers";
2
3
  import type { TransactionResponse } from "ethers/providers";
3
- import type { EthereumProvider } from "hardhat/types/providers";
4
4
  export type Token = BaseContract & {
5
5
  balanceOf: BaseContractMethod<[string], bigint, bigint>;
6
6
  name: BaseContractMethod<[], string, string>;
@@ -11,6 +11,6 @@ export type Token = BaseContract & {
11
11
  symbol: BaseContractMethod<[], string, string>;
12
12
  };
13
13
  export declare function supportChangeTokenBalance(Assertion: Chai.AssertionStatic, chaiUtils: Chai.ChaiUtils): void;
14
- export declare function getBalanceChange(provider: EthereumProvider, transaction: TransactionResponse | Promise<TransactionResponse>, token: Token, account: Addressable | string): Promise<bigint>;
14
+ export declare function getBalanceChange(ethers: HardhatEthers, transaction: TransactionResponse | Promise<TransactionResponse>, token: Token, account: Addressable | string): Promise<bigint>;
15
15
  export declare function clearTokenDescriptionsCache(): void;
16
16
  //# sourceMappingURL=changeTokenBalance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeTokenBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,2BAA2B,EAC5B,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAkBhE,MAAM,MAAM,KAAK,GAAG,YAAY,GAAG;IACjC,SAAS,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,EAAE,kBAAkB,CAC1B;QAAC,MAAM;QAAE,YAAY;KAAC,EACtB,OAAO,EACP,2BAA2B,CAC5B,CAAC;IACF,MAAM,EAAE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CAyIN;AAqDD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,GAAG,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC,CA8BjB;AA2BD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
1
+ {"version":3,"file":"changeTokenBalance.d.ts","sourceRoot":"","sources":["../../../../src/internal/matchers/changeTokenBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,2BAA2B,EAC5B,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkB5D,MAAM,MAAM,KAAK,GAAG,YAAY,GAAG;IACjC,SAAS,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,QAAQ,EAAE,kBAAkB,CAC1B;QAAC,MAAM;QAAE,YAAY;KAAC,EACtB,OAAO,EACP,2BAA2B,CAC5B,CAAC;IACF,MAAM,EAAE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CAyIN;AAqDD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,GAAG,MAAM,GAC5B,OAAO,CAAC,MAAM,CAAC,CA2BjB;AA2BD,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
@@ -7,7 +7,7 @@ import { assertIsNotNull } from "../utils/asserts.js";
7
7
  import { buildAssert } from "../utils/build-assert.js";
8
8
  import { preventAsyncMatcherChaining } from "../utils/prevent-chaining.js";
9
9
  export function supportChangeTokenBalance(Assertion, chaiUtils) {
10
- Assertion.addMethod(CHANGE_TOKEN_BALANCE_MATCHER, function (provider, token, account, balanceChange) {
10
+ Assertion.addMethod(CHANGE_TOKEN_BALANCE_MATCHER, function (ethers, token, account, balanceChange) {
11
11
  // capture negated flag before async code executes; see buildAssert's jsdoc
12
12
  const negated = this.__flags.negate;
13
13
  let subject = this._obj;
@@ -26,7 +26,7 @@ export function supportChangeTokenBalance(Assertion, chaiUtils) {
26
26
  }
27
27
  };
28
28
  const derivedPromise = Promise.all([
29
- getBalanceChange(provider, subject, token, account),
29
+ getBalanceChange(ethers, subject, token, account),
30
30
  getAddressOf(account),
31
31
  getTokenDescription(token),
32
32
  ]).then(checkBalanceChange);
@@ -34,7 +34,7 @@ export function supportChangeTokenBalance(Assertion, chaiUtils) {
34
34
  this.catch = derivedPromise.catch.bind(derivedPromise);
35
35
  return this;
36
36
  });
37
- Assertion.addMethod(CHANGE_TOKEN_BALANCES_MATCHER, function (provider, token, accounts, balanceChanges) {
37
+ Assertion.addMethod(CHANGE_TOKEN_BALANCES_MATCHER, function (ethers, token, accounts, balanceChanges) {
38
38
  // capture negated flag before async code executes; see buildAssert's jsdoc
39
39
  const negated = this.__flags.negate;
40
40
  let subject = this._obj;
@@ -43,7 +43,7 @@ export function supportChangeTokenBalance(Assertion, chaiUtils) {
43
43
  }
44
44
  preventAsyncMatcherChaining(this, CHANGE_TOKEN_BALANCES_MATCHER, chaiUtils);
45
45
  validateInput(this._obj, token, accounts, balanceChanges);
46
- const balanceChangesPromise = Promise.all(accounts.map((account) => getBalanceChange(provider, subject, token, account)));
46
+ const balanceChangesPromise = Promise.all(accounts.map((account) => getBalanceChange(ethers, subject, token, account)));
47
47
  const addressesPromise = Promise.all(accounts.map(getAddressOf));
48
48
  const checkBalanceChanges = ([actualChanges, addresses, tokenDescription,]) => {
49
49
  const assert = buildAssert(negated, checkBalanceChanges);
@@ -97,18 +97,14 @@ function checkToken(token, method) {
97
97
  throw new HardhatError(HardhatError.ERRORS.CHAI_MATCHERS.GENERAL.CONTRACT_IS_NOT_AN_ERC20_TOKEN);
98
98
  }
99
99
  }
100
- export async function getBalanceChange(provider, transaction, token, account) {
100
+ export async function getBalanceChange(ethers, transaction, token, account) {
101
101
  const txResponse = await transaction;
102
102
  const txReceipt = await txResponse.wait();
103
103
  assertIsNotNull(txReceipt, "txReceipt");
104
104
  const txBlockNumber = txReceipt.blockNumber;
105
- const block = await provider.request({
106
- method: "eth_getBlockByHash",
107
- params: [txReceipt.blockHash, false],
108
- });
109
- assertHardhatInvariant(isObject(block) &&
110
- Array.isArray(block.transactions) &&
111
- block.transactions.length === 1, "There should be only 1 transaction in the block");
105
+ const block = await ethers.provider.getBlock(txReceipt.blockHash, false);
106
+ assertHardhatInvariant(block !== null, "The block doesn't exist");
107
+ assertHardhatInvariant(Array.isArray(block.transactions) && block.transactions.length === 1, "There should be only 1 transaction in the block");
112
108
  const address = await getAddressOf(account);
113
109
  const balanceAfter = await token.balanceOf(address, {
114
110
  blockTag: txBlockNumber,
@@ -1 +1 @@
1
- {"version":3,"file":"changeTokenBalance.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeTokenBalance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeTokenBalance.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeTokenBalance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function supportLegacyReverted(Assertion: Chai.AssertionStatic, _chaiUtils: Chai.ChaiUtils): void;
2
+ //# sourceMappingURL=legacyReverted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyReverted.d.ts","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/legacyReverted.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,UAAU,EAAE,IAAI,CAAC,SAAS,GACzB,IAAI,CAWN"}
@@ -0,0 +1,12 @@
1
+ import { HardhatError } from "@nomicfoundation/hardhat-errors";
2
+ import { LEGACY_REVERTED_MATCHER } from "../../constants.js";
3
+ export function supportLegacyReverted(Assertion, _chaiUtils) {
4
+ Assertion.addProperty(LEGACY_REVERTED_MATCHER, function () {
5
+ // We handle the promise rejection, if any
6
+ if (this._obj instanceof Promise) {
7
+ this._obj.catch(() => { });
8
+ }
9
+ throw new HardhatError(HardhatError.ERRORS.CHAI_MATCHERS.GENERAL.DEPRECATED_REVERTED_MATCHER);
10
+ });
11
+ }
12
+ //# sourceMappingURL=legacyReverted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyReverted.js","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/legacyReverted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CACnC,SAA+B,EAC/B,UAA0B;IAE1B,SAAS,CAAC,WAAW,CAAC,uBAAuB,EAAE;QAC7C,0CAA0C;QAC1C,IAAI,IAAI,CAAC,IAAI,YAAY,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,YAAY,CACpB,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,2BAA2B,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function supportRevert(Assertion: Chai.AssertionStatic, chaiUtils: Chai.ChaiUtils): void;
2
+ //# sourceMappingURL=revert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.d.ts","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/revert.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAC3B,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CA2GN"}
@@ -1,20 +1,20 @@
1
1
  import { HardhatError } from "@nomicfoundation/hardhat-errors";
2
2
  import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
3
- import { REVERTED_MATCHER } from "../../constants.js";
3
+ import { REVERT_MATCHER } from "../../constants.js";
4
4
  import { assertIsNotNull } from "../../utils/asserts.js";
5
5
  import { buildAssert } from "../../utils/build-assert.js";
6
6
  import { preventAsyncMatcherChaining } from "../../utils/prevent-chaining.js";
7
7
  import { decodeReturnData, getReturnDataFromError, parseBytes32String, } from "./utils.js";
8
- export function supportReverted(Assertion, chaiUtils) {
9
- Assertion.addMethod(REVERTED_MATCHER, function (ethers) {
8
+ export function supportRevert(Assertion, chaiUtils) {
9
+ Assertion.addMethod(REVERT_MATCHER, function (ethers) {
10
10
  // capture negated flag before async code executes; see buildAssert's jsdoc
11
11
  const negated = this.__flags.negate;
12
12
  const subject = this._obj;
13
- preventAsyncMatcherChaining(this, REVERTED_MATCHER, chaiUtils);
13
+ preventAsyncMatcherChaining(this, REVERT_MATCHER, chaiUtils);
14
14
  // Check if the received value can be linked to a transaction, and then
15
15
  // get the receipt of that transaction and check its status.
16
16
  //
17
- // If the value doesn't correspond to a transaction, then the `reverted`
17
+ // If the value doesn't correspond to a transaction, then the `revert`
18
18
  // assertion is false.
19
19
  const onSuccess = async (value) => {
20
20
  const assert = buildAssert(negated, onSuccess);
@@ -43,10 +43,10 @@ export function supportReverted(Assertion, chaiUtils) {
43
43
  else {
44
44
  // If the subject of the assertion is not connected to a transaction
45
45
  // (hash, receipt, etc.), then the assertion fails.
46
- // Since we use `false` here, this means that `.not.to.be.reverted`
46
+ // Since we use `false` here, this means that `.not.to.be.revert`
47
47
  // assertions will pass instead of always throwing a validation error.
48
48
  // This allows users to do things like:
49
- // `expect(c.callStatic.f()).to.not.be.reverted`
49
+ // `expect(c.callStatic.f()).to.not.be.revert`
50
50
  assert(false, "Expected transaction to be reverted");
51
51
  }
52
52
  };
@@ -109,4 +109,4 @@ function isBytes32String(v) {
109
109
  return false;
110
110
  }
111
111
  }
112
- //# sourceMappingURL=reverted.js.map
112
+ //# sourceMappingURL=revert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert.js","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/revert.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
1
2
  import type { Addressable } from "ethers";
2
- import type { EthereumProvider } from "hardhat/types/providers";
3
3
  export interface BalanceChangeOptions {
4
4
  includeFee?: boolean;
5
5
  }
6
6
  export declare function getAddresses(accounts: Array<Addressable | string>): Promise<string[]>;
7
- export declare function getBalances(provider: EthereumProvider, accounts: Array<Addressable | string>, blockNumber?: number): Promise<bigint[]>;
7
+ export declare function getBalances(ethers: HardhatEthers, accounts: Array<Addressable | string>, blockNumber: number): Promise<bigint[]>;
8
8
  //# sourceMappingURL=balance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,EACrC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAO1C,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,EACrC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB"}
@@ -1,17 +1,13 @@
1
1
  import { toBigInt } from "@nomicfoundation/hardhat-utils/bigint";
2
- import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
3
2
  import { getAddressOf } from "./account.js";
4
3
  import { assertCanBeConvertedToBigint } from "./asserts.js";
5
4
  export function getAddresses(accounts) {
6
5
  return Promise.all(accounts.map((account) => getAddressOf(account)));
7
6
  }
8
- export async function getBalances(provider, accounts, blockNumber) {
7
+ export async function getBalances(ethers, accounts, blockNumber) {
9
8
  return Promise.all(accounts.map(async (account) => {
10
9
  const address = await getAddressOf(account);
11
- const result = await provider.request({
12
- method: "eth_getBalance",
13
- params: [address, numberToHexString(blockNumber ?? 0)],
14
- });
10
+ const result = await ethers.provider.getBalance(address, blockNumber);
15
11
  assertCanBeConvertedToBigint(result);
16
12
  return toBigInt(result);
17
13
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/internal/utils/balance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAM5D,MAAM,UAAU,YAAY,CAC1B,QAAqC;IAErC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAA0B,EAC1B,QAAqC,EACrC,WAAoB;IAEpB,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;SACvD,CAAC,CAAC;QAEH,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAErC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/internal/utils/balance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAM5D,MAAM,UAAU,YAAY,CAC1B,QAAqC;IAErC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,QAAqC,EACrC,WAAmB;IAEnB,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACtE,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAErC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
- import type { EthereumProvider } from "hardhat/types/providers";
3
2
  declare global {
4
3
  namespace Chai {
5
4
  interface Assertion extends LanguageChains, NumericComparison, TypeComparison {
6
5
  emit(contract: any, eventName: string): EmitAssertion;
7
- reverted(ethers: HardhatEthers): AsyncAssertion;
6
+ reverted: AsyncAssertion;
7
+ revert(ethers: HardhatEthers): AsyncAssertion;
8
8
  revertedWith(reason: string | RegExp): AsyncAssertion;
9
9
  revertedWithoutReason(ethers: HardhatEthers): AsyncAssertion;
10
10
  revertedWithPanic(code?: any): AsyncAssertion;
@@ -15,10 +15,10 @@ declare global {
15
15
  properPrivateKey: void;
16
16
  properAddress: void;
17
17
  properHex(length: number): void;
18
- changeEtherBalance(provider: EthereumProvider, account: any, balance: any, options?: any): AsyncAssertion;
19
- changeEtherBalances(provider: EthereumProvider, accounts: any[], balances: any[] | ((changes: bigint[]) => boolean), options?: any): AsyncAssertion;
20
- changeTokenBalance(provider: EthereumProvider, token: any, account: any, balance: any): AsyncAssertion;
21
- changeTokenBalances(provider: EthereumProvider, token: any, account: any[], balance: any[] | ((changes: bigint[]) => boolean)): AsyncAssertion;
18
+ changeEtherBalance(ethers: HardhatEthers, account: any, balance: any, options?: any): AsyncAssertion;
19
+ changeEtherBalances(ethers: HardhatEthers, accounts: any[], balances: any[] | ((changes: bigint[]) => boolean), options?: any): AsyncAssertion;
20
+ changeTokenBalance(ethers: HardhatEthers, token: any, account: any, balance: any): AsyncAssertion;
21
+ changeTokenBalances(ethers: HardhatEthers, token: any, account: any[], balance: any[] | ((changes: bigint[]) => boolean)): AsyncAssertion;
22
22
  }
23
23
  interface NumericComparison {
24
24
  within(start: any, finish: any, message?: string): Assertion;
@@ -1 +1 @@
1
- {"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../src/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,CAAC,MAAM,CAAC;IAGb,UAAU,IAAI,CAAC;QACb,UAAU,SACR,SAAQ,cAAc,EACpB,iBAAiB,EACjB,cAAc;YAChB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;YACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;YAChD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;YACtD,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;YAC7D,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC;YAC9C,uBAAuB,CACrB,QAAQ,EAAE;gBAAE,SAAS,EAAE,GAAG,CAAA;aAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,oBAAoB,CAAC;YACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YAC9B,gBAAgB,EAAE,IAAI,CAAC;YACvB,aAAa,EAAE,IAAI,CAAC;YACpB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAChC,kBAAkB,CAChB,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,GAAG,GACZ,cAAc,CAAC;YAClB,mBAAmB,CACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,GAAG,EAAE,EACf,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE,GAAG,GACZ,cAAc,CAAC;YAClB,kBAAkB,CAChB,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,cAAc,CAAC;YAClB,mBAAmB,CACjB,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,GAAG,EAAE,EACd,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAChD,cAAc,CAAC;SACnB;QAED,UAAU,iBAAiB;YACzB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC9D;QAED,UAAU,cAAc;YAEtB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC3C;QAED,UAAU,OAAO;YAEf,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC1D;QAED,UAAU,MAAO,SAAQ,SAAS;YAChC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC5C;QAED,UAAU,cAAe,SAAQ,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;SAAG;QAE5D,UAAU,aAAc,SAAQ,cAAc;YAC5C,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;SAC1C;QAED,UAAU,oBAAqB,SAAQ,cAAc;YACnD,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;SAC1C;KACF;CACF"}
1
+ {"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../../src/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAI3E,OAAO,CAAC,MAAM,CAAC;IAGb,UAAU,IAAI,CAAC;QACb,UAAU,SACR,SAAQ,cAAc,EACpB,iBAAiB,EACjB,cAAc;YAChB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;YACtD,QAAQ,EAAE,cAAc,CAAC;YACzB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;YAC9C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC;YACtD,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAAC;YAC7D,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC;YAC9C,uBAAuB,CACrB,QAAQ,EAAE;gBAAE,SAAS,EAAE,GAAG,CAAA;aAAE,EAC5B,eAAe,EAAE,MAAM,GACtB,oBAAoB,CAAC;YACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YAC9B,gBAAgB,EAAE,IAAI,CAAC;YACvB,aAAa,EAAE,IAAI,CAAC;YACpB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAChC,kBAAkB,CAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,EACZ,OAAO,CAAC,EAAE,GAAG,GACZ,cAAc,CAAC;YAClB,mBAAmB,CACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,GAAG,EAAE,EACf,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE,GAAG,GACZ,cAAc,CAAC;YAClB,kBAAkB,CAChB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,GAAG,GACX,cAAc,CAAC;YAClB,mBAAmB,CACjB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,GAAG,EAAE,EACd,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAChD,cAAc,CAAC;SACnB;QAED,UAAU,iBAAiB;YACzB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC9D;QAED,UAAU,cAAc;YAEtB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC3C;QAED,UAAU,OAAO;YAEf,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC1D;QAED,UAAU,MAAO,SAAQ,SAAS;YAChC,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAC5C;QAED,UAAU,cAAe,SAAQ,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;SAAG;QAE5D,UAAU,aAAc,SAAQ,cAAc;YAC5C,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;SAC1C;QAED,UAAU,oBAAqB,SAAQ,cAAc;YACnD,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;SAC1C;KACF;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomicfoundation/hardhat-ethers-chai-matchers",
3
- "version": "3.0.0-next.30",
3
+ "version": "3.0.0-next.32",
4
4
  "description": "Hardhat utils for testing",
5
5
  "homepage": "https://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat-ethers-chai-matchers",
6
6
  "repository": {
@@ -31,8 +31,8 @@
31
31
  "README.md"
32
32
  ],
33
33
  "devDependencies": {
34
- "@nomicfoundation/hardhat-mocha": "^3.0.0-next.30",
35
- "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.30",
34
+ "@nomicfoundation/hardhat-mocha": "^3.0.0-next.32",
35
+ "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.32",
36
36
  "@types/chai": "^4.2.0",
37
37
  "@types/debug": "^4.1.7",
38
38
  "@types/deep-eql": "^4.0.2",
@@ -46,18 +46,18 @@
46
46
  "rimraf": "^5.0.5",
47
47
  "tsx": "^4.19.3",
48
48
  "typescript": "~5.8.0",
49
- "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.30"
49
+ "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.32"
50
50
  },
51
51
  "dependencies": {
52
- "@nomicfoundation/hardhat-errors": "^3.0.0-next.30",
53
- "@nomicfoundation/hardhat-utils": "^3.0.0-next.30",
52
+ "@nomicfoundation/hardhat-errors": "^3.0.0-next.32",
53
+ "@nomicfoundation/hardhat-utils": "^3.0.0-next.32",
54
54
  "@types/chai-as-promised": "^8.0.1",
55
55
  "chai-as-promised": "^8.0.0",
56
56
  "deep-eql": "^5.0.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "hardhat": "^3.0.0-next.30",
60
- "@nomicfoundation/hardhat-ethers": "^4.0.0-next.30",
59
+ "hardhat": "^3.0.0-next.32",
60
+ "@nomicfoundation/hardhat-ethers": "^4.0.0-next.32",
61
61
  "chai": "^5.1.2",
62
62
  "ethers": "^6.14.0"
63
63
  },
@@ -11,7 +11,8 @@ import { supportHexEqual } from "./matchers/hexEqual.js";
11
11
  import { supportProperAddress } from "./matchers/properAddress.js";
12
12
  import { supportProperHex } from "./matchers/properHex.js";
13
13
  import { supportProperPrivateKey } from "./matchers/properPrivateKey.js";
14
- import { supportReverted } from "./matchers/reverted/reverted.js";
14
+ import { supportLegacyReverted } from "./matchers/reverted/legacyReverted.js";
15
+ import { supportRevert } from "./matchers/reverted/revert.js";
15
16
  import { supportRevertedWith } from "./matchers/reverted/revertedWith.js";
16
17
  import { supportRevertedWithCustomError } from "./matchers/reverted/revertedWithCustomError.js";
17
18
  import { supportRevertedWithPanic } from "./matchers/reverted/revertedWithPanic.js";
@@ -37,7 +38,8 @@ function hardhatChaiMatchers(
37
38
  supportChangeEtherBalance(chai.Assertion, chaiUtils);
38
39
  supportChangeEtherBalances(chai.Assertion, chaiUtils);
39
40
  supportChangeTokenBalance(chai.Assertion, chaiUtils);
40
- supportReverted(chai.Assertion, chaiUtils);
41
+ supportLegacyReverted(chai.Assertion, chaiUtils);
42
+ supportRevert(chai.Assertion, chaiUtils);
41
43
  supportRevertedWith(chai.Assertion, chaiUtils);
42
44
  supportRevertedWithCustomError(chai.Assertion, chaiUtils);
43
45
  supportRevertedWithPanic(chai.Assertion, chaiUtils);
@@ -6,7 +6,8 @@ export const CHANGE_ETHER_BALANCES_MATCHER = "changeEtherBalances";
6
6
  export const CHANGE_TOKEN_BALANCE_MATCHER = "changeTokenBalance";
7
7
  export const CHANGE_TOKEN_BALANCES_MATCHER = "changeTokenBalances";
8
8
  export const EMIT_MATCHER = "emit";
9
- export const REVERTED_MATCHER = "reverted";
9
+ export const LEGACY_REVERTED_MATCHER = "reverted";
10
+ export const REVERT_MATCHER = "revert";
10
11
  export const REVERTED_WITH_MATCHER = "revertedWith";
11
12
  export const REVERTED_WITH_CUSTOM_ERROR_MATCHER = "revertedWithCustomError";
12
13
  export const REVERTED_WITH_PANIC_MATCHER = "revertedWithPanic";
@@ -1,11 +1,10 @@
1
1
  import type { BalanceChangeOptions } from "../utils/balance.js";
2
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
3
  import type { Addressable } from "ethers/address";
3
4
  import type { TransactionResponse } from "ethers/providers";
4
5
  import type { BigNumberish } from "ethers/utils";
5
- import type { EthereumProvider } from "hardhat/types/providers";
6
6
 
7
7
  import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
8
- import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
9
8
  import { isObject } from "@nomicfoundation/hardhat-utils/lang";
10
9
  import { toBigInt } from "ethers/utils";
11
10
 
@@ -26,7 +25,7 @@ export function supportChangeEtherBalance(
26
25
  CHANGE_ETHER_BALANCE_MATCHER,
27
26
  function (
28
27
  this: any,
29
- provider: EthereumProvider,
28
+ ethers: HardhatEthers,
30
29
  account: Addressable | string,
31
30
  balanceChange: BigNumberish | ((change: bigint) => boolean),
32
31
  options?: BalanceChangeOptions,
@@ -64,7 +63,7 @@ export function supportChangeEtherBalance(
64
63
  };
65
64
 
66
65
  const derivedPromise = Promise.all([
67
- getBalanceChange(provider, subject, account, options),
66
+ getBalanceChange(ethers, subject, account, options),
68
67
  getAddressOf(account),
69
68
  ]).then(checkBalanceChange);
70
69
  this.then = derivedPromise.then.bind(derivedPromise);
@@ -76,7 +75,7 @@ export function supportChangeEtherBalance(
76
75
  }
77
76
 
78
77
  export async function getBalanceChange(
79
- provider: EthereumProvider,
78
+ ethers: HardhatEthers,
80
79
  transaction:
81
80
  | TransactionResponse
82
81
  | Promise<TransactionResponse>
@@ -96,10 +95,9 @@ export async function getBalanceChange(
96
95
  assertIsNotNull(txReceipt, "txReceipt");
97
96
  const txBlockNumber = txReceipt.blockNumber;
98
97
 
99
- const block = await provider.request({
100
- method: "eth_getBlockByHash",
101
- params: [txReceipt.blockHash, false],
102
- });
98
+ const block = await ethers.provider.getBlock(txReceipt.blockHash, false);
99
+
100
+ assertHardhatInvariant(block !== null, "The block doesn't exist");
103
101
 
104
102
  assertHardhatInvariant(
105
103
  isObject(block) &&
@@ -110,15 +108,15 @@ export async function getBalanceChange(
110
108
 
111
109
  const address = await getAddressOf(account);
112
110
 
113
- const balanceAfterHex = await provider.request({
114
- method: "eth_getBalance",
115
- params: [address, numberToHexString(txBlockNumber)],
116
- });
111
+ const balanceAfterHex = await ethers.provider.getBalance(
112
+ address,
113
+ txBlockNumber,
114
+ );
117
115
 
118
- const balanceBeforeHex = await provider.request({
119
- method: "eth_getBalance",
120
- params: [address, numberToHexString(txBlockNumber - 1)],
121
- });
116
+ const balanceBeforeHex = await ethers.provider.getBalance(
117
+ address,
118
+ txBlockNumber - 1,
119
+ );
122
120
 
123
121
  assertCanBeConvertedToBigint(balanceAfterHex);
124
122
  assertCanBeConvertedToBigint(balanceBeforeHex);
@@ -1,7 +1,7 @@
1
1
  import type { BalanceChangeOptions } from "../utils/balance.js";
2
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
3
  import type { Addressable } from "ethers/address";
3
4
  import type { TransactionResponse } from "ethers/providers";
4
- import type { EthereumProvider } from "hardhat/types/providers";
5
5
 
6
6
  import { HardhatError } from "@nomicfoundation/hardhat-errors";
7
7
  import { toBigInt } from "ethers/utils";
@@ -22,7 +22,7 @@ export function supportChangeEtherBalances(
22
22
  CHANGE_ETHER_BALANCES_MATCHER,
23
23
  function (
24
24
  this: any,
25
- provider: EthereumProvider,
25
+ ethers: HardhatEthers,
26
26
  accounts: Array<Addressable | string>,
27
27
  balanceChanges: bigint[] | ((changes: bigint[]) => boolean),
28
28
  options?: BalanceChangeOptions,
@@ -99,7 +99,7 @@ export function supportChangeEtherBalances(
99
99
  };
100
100
 
101
101
  const derivedPromise = Promise.all([
102
- getBalanceChanges(provider, subject, accounts, options),
102
+ getBalanceChanges(ethers, subject, accounts, options),
103
103
  getAddresses(accounts),
104
104
  ]).then(checkBalanceChanges);
105
105
  this.then = derivedPromise.then.bind(derivedPromise);
@@ -137,7 +137,7 @@ function validateInput(
137
137
  }
138
138
 
139
139
  export async function getBalanceChanges(
140
- provider: EthereumProvider,
140
+ ethers: HardhatEthers,
141
141
  transaction: TransactionResponse | Promise<TransactionResponse>,
142
142
  accounts: Array<Addressable | string>,
143
143
  options?: BalanceChangeOptions,
@@ -148,12 +148,8 @@ export async function getBalanceChanges(
148
148
  assertIsNotNull(txReceipt, "txReceipt");
149
149
  const txBlockNumber = txReceipt.blockNumber;
150
150
 
151
- const balancesAfter = await getBalances(provider, accounts, txBlockNumber);
152
- const balancesBefore = await getBalances(
153
- provider,
154
- accounts,
155
- txBlockNumber - 1,
156
- );
151
+ const balancesAfter = await getBalances(ethers, accounts, txBlockNumber);
152
+ const balancesBefore = await getBalances(ethers, accounts, txBlockNumber - 1);
157
153
 
158
154
  const txFees = await getTxFees(accounts, txResponse, options);
159
155
 
@@ -1,3 +1,4 @@
1
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
1
2
  import type {
2
3
  Addressable,
3
4
  BaseContract,
@@ -6,7 +7,6 @@ import type {
6
7
  ContractTransactionResponse,
7
8
  } from "ethers";
8
9
  import type { TransactionResponse } from "ethers/providers";
9
- import type { EthereumProvider } from "hardhat/types/providers";
10
10
 
11
11
  import {
12
12
  assertHardhatInvariant,
@@ -43,7 +43,7 @@ export function supportChangeTokenBalance(
43
43
  CHANGE_TOKEN_BALANCE_MATCHER,
44
44
  function (
45
45
  this: any,
46
- provider: EthereumProvider,
46
+ ethers: HardhatEthers,
47
47
  token: Token,
48
48
  account: Addressable | string,
49
49
  balanceChange: bigint | ((change: bigint) => boolean),
@@ -87,7 +87,7 @@ export function supportChangeTokenBalance(
87
87
  };
88
88
 
89
89
  const derivedPromise = Promise.all([
90
- getBalanceChange(provider, subject, token, account),
90
+ getBalanceChange(ethers, subject, token, account),
91
91
  getAddressOf(account),
92
92
  getTokenDescription(token),
93
93
  ]).then(checkBalanceChange);
@@ -103,7 +103,7 @@ export function supportChangeTokenBalance(
103
103
  CHANGE_TOKEN_BALANCES_MATCHER,
104
104
  function (
105
105
  this: any,
106
- provider: EthereumProvider,
106
+ ethers: HardhatEthers,
107
107
  token: Token,
108
108
  accounts: Array<Addressable | string>,
109
109
  balanceChanges: bigint[] | ((changes: bigint[]) => boolean),
@@ -126,7 +126,7 @@ export function supportChangeTokenBalance(
126
126
 
127
127
  const balanceChangesPromise = Promise.all(
128
128
  accounts.map((account) =>
129
- getBalanceChange(provider, subject, token, account),
129
+ getBalanceChange(ethers, subject, token, account),
130
130
  ),
131
131
  );
132
132
  const addressesPromise = Promise.all(accounts.map(getAddressOf));
@@ -229,7 +229,7 @@ function checkToken(token: unknown, method: string) {
229
229
  }
230
230
 
231
231
  export async function getBalanceChange(
232
- provider: EthereumProvider,
232
+ ethers: HardhatEthers,
233
233
  transaction: TransactionResponse | Promise<TransactionResponse>,
234
234
  token: Token,
235
235
  account: Addressable | string,
@@ -240,15 +240,12 @@ export async function getBalanceChange(
240
240
  assertIsNotNull(txReceipt, "txReceipt");
241
241
  const txBlockNumber = txReceipt.blockNumber;
242
242
 
243
- const block = await provider.request({
244
- method: "eth_getBlockByHash",
245
- params: [txReceipt.blockHash, false],
246
- });
243
+ const block = await ethers.provider.getBlock(txReceipt.blockHash, false);
244
+
245
+ assertHardhatInvariant(block !== null, "The block doesn't exist");
247
246
 
248
247
  assertHardhatInvariant(
249
- isObject(block) &&
250
- Array.isArray(block.transactions) &&
251
- block.transactions.length === 1,
248
+ Array.isArray(block.transactions) && block.transactions.length === 1,
252
249
  "There should be only 1 transaction in the block",
253
250
  );
254
251
 
@@ -0,0 +1,19 @@
1
+ import { HardhatError } from "@nomicfoundation/hardhat-errors";
2
+
3
+ import { LEGACY_REVERTED_MATCHER } from "../../constants.js";
4
+
5
+ export function supportLegacyReverted(
6
+ Assertion: Chai.AssertionStatic,
7
+ _chaiUtils: Chai.ChaiUtils,
8
+ ): void {
9
+ Assertion.addProperty(LEGACY_REVERTED_MATCHER, function () {
10
+ // We handle the promise rejection, if any
11
+ if (this._obj instanceof Promise) {
12
+ this._obj.catch(() => {});
13
+ }
14
+
15
+ throw new HardhatError(
16
+ HardhatError.ERRORS.CHAI_MATCHERS.GENERAL.DEPRECATED_REVERTED_MATCHER,
17
+ );
18
+ });
19
+ }
@@ -3,7 +3,7 @@ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
3
3
  import { HardhatError } from "@nomicfoundation/hardhat-errors";
4
4
  import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
5
5
 
6
- import { REVERTED_MATCHER } from "../../constants.js";
6
+ import { REVERT_MATCHER } from "../../constants.js";
7
7
  import { assertIsNotNull } from "../../utils/asserts.js";
8
8
  import { buildAssert } from "../../utils/build-assert.js";
9
9
  import { preventAsyncMatcherChaining } from "../../utils/prevent-chaining.js";
@@ -14,24 +14,24 @@ import {
14
14
  parseBytes32String,
15
15
  } from "./utils.js";
16
16
 
17
- export function supportReverted(
17
+ export function supportRevert(
18
18
  Assertion: Chai.AssertionStatic,
19
19
  chaiUtils: Chai.ChaiUtils,
20
20
  ): void {
21
21
  Assertion.addMethod(
22
- REVERTED_MATCHER,
22
+ REVERT_MATCHER,
23
23
  function (this: any, ethers: HardhatEthers) {
24
24
  // capture negated flag before async code executes; see buildAssert's jsdoc
25
25
  const negated = this.__flags.negate;
26
26
 
27
27
  const subject: unknown = this._obj;
28
28
 
29
- preventAsyncMatcherChaining(this, REVERTED_MATCHER, chaiUtils);
29
+ preventAsyncMatcherChaining(this, REVERT_MATCHER, chaiUtils);
30
30
 
31
31
  // Check if the received value can be linked to a transaction, and then
32
32
  // get the receipt of that transaction and check its status.
33
33
  //
34
- // If the value doesn't correspond to a transaction, then the `reverted`
34
+ // If the value doesn't correspond to a transaction, then the `revert`
35
35
  // assertion is false.
36
36
  const onSuccess = async (value: unknown) => {
37
37
  const assert = buildAssert(negated, onSuccess);
@@ -75,10 +75,10 @@ export function supportReverted(
75
75
  } else {
76
76
  // If the subject of the assertion is not connected to a transaction
77
77
  // (hash, receipt, etc.), then the assertion fails.
78
- // Since we use `false` here, this means that `.not.to.be.reverted`
78
+ // Since we use `false` here, this means that `.not.to.be.revert`
79
79
  // assertions will pass instead of always throwing a validation error.
80
80
  // This allows users to do things like:
81
- // `expect(c.callStatic.f()).to.not.be.reverted`
81
+ // `expect(c.callStatic.f()).to.not.be.revert`
82
82
  assert(false, "Expected transaction to be reverted");
83
83
  }
84
84
  };
@@ -1,8 +1,7 @@
1
+ import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
1
2
  import type { Addressable } from "ethers";
2
- import type { EthereumProvider } from "hardhat/types/providers";
3
3
 
4
4
  import { toBigInt } from "@nomicfoundation/hardhat-utils/bigint";
5
- import { numberToHexString } from "@nomicfoundation/hardhat-utils/hex";
6
5
 
7
6
  import { getAddressOf } from "./account.js";
8
7
  import { assertCanBeConvertedToBigint } from "./asserts.js";
@@ -18,19 +17,15 @@ export function getAddresses(
18
17
  }
19
18
 
20
19
  export async function getBalances(
21
- provider: EthereumProvider,
20
+ ethers: HardhatEthers,
22
21
  accounts: Array<Addressable | string>,
23
- blockNumber?: number,
22
+ blockNumber: number,
24
23
  ): Promise<bigint[]> {
25
24
  return Promise.all(
26
25
  accounts.map(async (account) => {
27
26
  const address = await getAddressOf(account);
28
27
 
29
- const result = await provider.request({
30
- method: "eth_getBalance",
31
- params: [address, numberToHexString(blockNumber ?? 0)],
32
- });
33
-
28
+ const result = await ethers.provider.getBalance(address, blockNumber);
34
29
  assertCanBeConvertedToBigint(result);
35
30
 
36
31
  return toBigInt(result);
@@ -1,5 +1,4 @@
1
1
  import type { HardhatEthers } from "@nomicfoundation/hardhat-ethers/types";
2
- import type { EthereumProvider } from "hardhat/types/providers";
3
2
 
4
3
  // We use declare global instead of declare module "chai", because that's what
5
4
  // @types/chai does.
@@ -12,7 +11,8 @@ declare global {
12
11
  NumericComparison,
13
12
  TypeComparison {
14
13
  emit(contract: any, eventName: string): EmitAssertion;
15
- reverted(ethers: HardhatEthers): AsyncAssertion;
14
+ reverted: AsyncAssertion;
15
+ revert(ethers: HardhatEthers): AsyncAssertion;
16
16
  revertedWith(reason: string | RegExp): AsyncAssertion;
17
17
  revertedWithoutReason(ethers: HardhatEthers): AsyncAssertion;
18
18
  revertedWithPanic(code?: any): AsyncAssertion;
@@ -25,25 +25,25 @@ declare global {
25
25
  properAddress: void;
26
26
  properHex(length: number): void;
27
27
  changeEtherBalance(
28
- provider: EthereumProvider,
28
+ ethers: HardhatEthers,
29
29
  account: any,
30
30
  balance: any,
31
31
  options?: any,
32
32
  ): AsyncAssertion;
33
33
  changeEtherBalances(
34
- provider: EthereumProvider,
34
+ ethers: HardhatEthers,
35
35
  accounts: any[],
36
36
  balances: any[] | ((changes: bigint[]) => boolean),
37
37
  options?: any,
38
38
  ): AsyncAssertion;
39
39
  changeTokenBalance(
40
- provider: EthereumProvider,
40
+ ethers: HardhatEthers,
41
41
  token: any,
42
42
  account: any,
43
43
  balance: any,
44
44
  ): AsyncAssertion;
45
45
  changeTokenBalances(
46
- provider: EthereumProvider,
46
+ ethers: HardhatEthers,
47
47
  token: any,
48
48
  account: any[],
49
49
  balance: any[] | ((changes: bigint[]) => boolean),
@@ -1,2 +0,0 @@
1
- export declare function supportReverted(Assertion: Chai.AssertionStatic, chaiUtils: Chai.ChaiUtils): void;
2
- //# sourceMappingURL=reverted.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reverted.d.ts","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/reverted.ts"],"names":[],"mappings":"AAgBA,wBAAgB,eAAe,CAC7B,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,GACxB,IAAI,CA2GN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reverted.js","sourceRoot":"","sources":["../../../../../src/internal/matchers/reverted/reverted.ts"],"names":[],"mappings":"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"}