@nomicfoundation/hardhat-ethers-chai-matchers 3.0.0-next.30 → 3.0.0-next.31
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/dist/src/internal/add-chai-matchers.d.ts.map +1 -1
- package/dist/src/internal/add-chai-matchers.js +4 -2
- package/dist/src/internal/add-chai-matchers.js.map +1 -1
- package/dist/src/internal/constants.d.ts +2 -1
- package/dist/src/internal/constants.d.ts.map +1 -1
- package/dist/src/internal/constants.js +2 -1
- package/dist/src/internal/constants.js.map +1 -1
- package/dist/src/internal/matchers/changeEtherBalance.d.ts +2 -2
- package/dist/src/internal/matchers/changeEtherBalance.d.ts.map +1 -1
- package/dist/src/internal/matchers/changeEtherBalance.js +7 -16
- package/dist/src/internal/matchers/changeEtherBalance.js.map +1 -1
- package/dist/src/internal/matchers/changeEtherBalances.d.ts +2 -2
- package/dist/src/internal/matchers/changeEtherBalances.d.ts.map +1 -1
- package/dist/src/internal/matchers/changeEtherBalances.js +5 -5
- package/dist/src/internal/matchers/changeEtherBalances.js.map +1 -1
- package/dist/src/internal/matchers/changeTokenBalance.d.ts +2 -2
- package/dist/src/internal/matchers/changeTokenBalance.d.ts.map +1 -1
- package/dist/src/internal/matchers/changeTokenBalance.js +8 -12
- package/dist/src/internal/matchers/changeTokenBalance.js.map +1 -1
- package/dist/src/internal/matchers/reverted/legacyReverted.d.ts +2 -0
- package/dist/src/internal/matchers/reverted/legacyReverted.d.ts.map +1 -0
- package/dist/src/internal/matchers/reverted/legacyReverted.js +12 -0
- package/dist/src/internal/matchers/reverted/legacyReverted.js.map +1 -0
- package/dist/src/internal/matchers/reverted/revert.d.ts +2 -0
- package/dist/src/internal/matchers/reverted/revert.d.ts.map +1 -0
- package/dist/src/internal/matchers/reverted/{reverted.js → revert.js} +8 -8
- package/dist/src/internal/matchers/reverted/revert.js.map +1 -0
- package/dist/src/internal/utils/balance.d.ts +2 -2
- package/dist/src/internal/utils/balance.d.ts.map +1 -1
- package/dist/src/internal/utils/balance.js +2 -6
- package/dist/src/internal/utils/balance.js.map +1 -1
- package/dist/src/type-extensions.d.ts +6 -6
- package/dist/src/type-extensions.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/internal/add-chai-matchers.ts +4 -2
- package/src/internal/constants.ts +2 -1
- package/src/internal/matchers/changeEtherBalance.ts +15 -17
- package/src/internal/matchers/changeEtherBalances.ts +6 -10
- package/src/internal/matchers/changeTokenBalance.ts +10 -13
- package/src/internal/matchers/reverted/legacyReverted.ts +19 -0
- package/src/internal/matchers/reverted/{reverted.ts → revert.ts} +7 -7
- package/src/internal/utils/balance.ts +4 -9
- package/src/type-extensions.ts +6 -6
- package/dist/src/internal/matchers/reverted/reverted.d.ts +0 -2
- package/dist/src/internal/matchers/reverted/reverted.d.ts.map +0 -1
- 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":"
|
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 {
|
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
|
-
|
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,
|
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
|
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,
|
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
|
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,
|
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(
|
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,
|
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 (
|
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(
|
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(
|
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.
|
48
|
-
|
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.
|
56
|
-
|
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":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,
|
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(
|
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,
|
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 (
|
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(
|
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(
|
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(
|
78
|
-
const balancesBefore = await getBalances(
|
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":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,MAAM,UAAU,0BAA0B,CACxC,SAA+B,EAC/B,SAAyB;IAEzB,SAAS,CAAC,SAAS,CACjB,6BAA6B,EAC7B,UAEE,
|
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(
|
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;
|
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 (
|
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(
|
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 (
|
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(
|
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(
|
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.
|
106
|
-
|
107
|
-
|
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":"AAUA,OAAO,EACL,sBAAsB,EACtB,YAAY,GACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAa3E,MAAM,UAAU,yBAAyB,CACvC,SAA+B,EAC/B,SAAyB;IAEzB,SAAS,CAAC,SAAS,CACjB,4BAA4B,EAC5B,UAEE,
|
1
|
+
{"version":3,"file":"changeTokenBalance.js","sourceRoot":"","sources":["../../../../src/internal/matchers/changeTokenBalance.ts"],"names":[],"mappings":"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"}
|
@@ -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 @@
|
|
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 {
|
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
|
9
|
-
Assertion.addMethod(
|
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,
|
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 `
|
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.
|
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.
|
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=
|
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(
|
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,
|
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(
|
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.
|
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;
|
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
|
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(
|
19
|
-
changeEtherBalances(
|
20
|
-
changeTokenBalance(
|
21
|
-
changeTokenBalances(
|
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;
|
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.
|
3
|
+
"version": "3.0.0-next.31",
|
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.
|
35
|
-
"@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.
|
34
|
+
"@nomicfoundation/hardhat-mocha": "^3.0.0-next.31",
|
35
|
+
"@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.31",
|
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.
|
49
|
+
"@nomicfoundation/hardhat-test-utils": "^3.0.0-next.31"
|
50
50
|
},
|
51
51
|
"dependencies": {
|
52
|
-
"@nomicfoundation/hardhat-errors": "^3.0.0-next.
|
53
|
-
"@nomicfoundation/hardhat-utils": "^3.0.0-next.
|
52
|
+
"@nomicfoundation/hardhat-errors": "^3.0.0-next.31",
|
53
|
+
"@nomicfoundation/hardhat-utils": "^3.0.0-next.31",
|
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.
|
60
|
-
"@nomicfoundation/hardhat-ethers": "^4.0.0-next.
|
59
|
+
"hardhat": "^3.0.0-next.31",
|
60
|
+
"@nomicfoundation/hardhat-ethers": "^4.0.0-next.31",
|
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 {
|
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
|
-
|
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
|
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
|
-
|
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(
|
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
|
-
|
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.
|
100
|
-
|
101
|
-
|
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.
|
114
|
-
|
115
|
-
|
116
|
-
|
111
|
+
const balanceAfterHex = await ethers.provider.getBalance(
|
112
|
+
address,
|
113
|
+
txBlockNumber,
|
114
|
+
);
|
117
115
|
|
118
|
-
const balanceBeforeHex = await provider.
|
119
|
-
|
120
|
-
|
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
|
-
|
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(
|
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
|
-
|
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(
|
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
|
-
|
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(
|
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
|
-
|
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(
|
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
|
-
|
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.
|
244
|
-
|
245
|
-
|
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
|
-
|
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 {
|
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
|
17
|
+
export function supportRevert(
|
18
18
|
Assertion: Chai.AssertionStatic,
|
19
19
|
chaiUtils: Chai.ChaiUtils,
|
20
20
|
): void {
|
21
21
|
Assertion.addMethod(
|
22
|
-
|
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,
|
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 `
|
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.
|
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.
|
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
|
-
|
20
|
+
ethers: HardhatEthers,
|
22
21
|
accounts: Array<Addressable | string>,
|
23
|
-
blockNumber
|
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.
|
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);
|
package/src/type-extensions.ts
CHANGED
@@ -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
|
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
|
-
|
28
|
+
ethers: HardhatEthers,
|
29
29
|
account: any,
|
30
30
|
balance: any,
|
31
31
|
options?: any,
|
32
32
|
): AsyncAssertion;
|
33
33
|
changeEtherBalances(
|
34
|
-
|
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
|
-
|
40
|
+
ethers: HardhatEthers,
|
41
41
|
token: any,
|
42
42
|
account: any,
|
43
43
|
balance: any,
|
44
44
|
): AsyncAssertion;
|
45
45
|
changeTokenBalances(
|
46
|
-
|
46
|
+
ethers: HardhatEthers,
|
47
47
|
token: any,
|
48
48
|
account: any[],
|
49
49
|
balance: any[] | ((changes: bigint[]) => boolean),
|
@@ -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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"}
|