hardhat 2.22.5 → 2.22.6
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/internal/cli/bootstrap.js +2 -3
- package/internal/cli/bootstrap.js.map +1 -1
- package/internal/cli/constants.d.ts.map +1 -1
- package/internal/cli/constants.js +1 -1
- package/internal/cli/constants.js.map +1 -1
- package/internal/cli/is-node-version-to-warn-on.d.ts +13 -0
- package/internal/cli/is-node-version-to-warn-on.d.ts.map +1 -0
- package/internal/cli/is-node-version-to-warn-on.js +46 -0
- package/internal/cli/is-node-version-to-warn-on.js.map +1 -0
- package/internal/core/config/default-config.d.ts.map +1 -1
- package/internal/core/config/default-config.js +26 -0
- package/internal/core/config/default-config.js.map +1 -1
- package/internal/hardhat-network/provider/provider.d.ts +11 -8
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +20 -21
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +0 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.js +0 -16
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +0 -2
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +8 -7
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +13 -29
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/package.json +3 -3
- package/src/internal/cli/bootstrap.ts +3 -3
- package/src/internal/cli/constants.ts +1 -1
- package/src/internal/cli/is-node-version-to-warn-on.ts +54 -0
- package/src/internal/core/config/default-config.ts +26 -0
- package/src/internal/hardhat-network/provider/provider.ts +23 -31
- package/src/internal/hardhat-network/provider/vm/exit.ts +0 -21
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +0 -2
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +13 -26
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const semver_1 = __importDefault(require("semver"));
|
|
8
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const
|
|
10
|
-
if (
|
|
8
|
+
const is_node_version_to_warn_on_1 = require("./is-node-version-to-warn-on");
|
|
9
|
+
if ((0, is_node_version_to_warn_on_1.isNodeVersionToWarnOn)(process.version)) {
|
|
11
10
|
console.warn(chalk_1.default.yellow.bold(`WARNING:`), `You are currently using Node.js ${process.version}, which is not supported by Hardhat. This can lead to unexpected behavior. See https://hardhat.org/nodejs-versions`);
|
|
12
11
|
console.log();
|
|
13
12
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/internal/cli/bootstrap.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/internal/cli/bootstrap.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAE1B,6EAAqE;AAErE,IAAI,IAAA,kDAAqB,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IAC1C,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,mCAAmC,OAAO,CAAC,OAAO,oHAAoH,CACvK,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,EAAE,CAAC;CACf;AAED,OAAO,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/internal/cli/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/internal/cli/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,UAAoC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SUPPORTED_NODE_VERSIONS = void 0;
|
|
4
|
-
exports.SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0"];
|
|
4
|
+
exports.SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0", "^22.0.0"];
|
|
5
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/cli/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/internal/cli/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determine if the node version should trigger an unsupported
|
|
3
|
+
* warning.
|
|
4
|
+
*
|
|
5
|
+
* The current rule is that a unsupported warning will be shown if
|
|
6
|
+
*
|
|
7
|
+
* 1. An odd numbered version of Node.js is used - as this will never go to LTS
|
|
8
|
+
* 2. The version is less than the minimum supported version
|
|
9
|
+
*
|
|
10
|
+
* We intentionally do not warn on newer **even** versions of Node.js.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isNodeVersionToWarnOn(nodeVersion: string): boolean;
|
|
13
|
+
//# sourceMappingURL=is-node-version-to-warn-on.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-node-version-to-warn-on.d.ts","sourceRoot":"","sources":["../../src/internal/cli/is-node-version-to-warn-on.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAmBlE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isNodeVersionToWarnOn = void 0;
|
|
7
|
+
const semver_1 = __importDefault(require("semver"));
|
|
8
|
+
const errors_1 = require("../core/errors");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
/**
|
|
11
|
+
* Determine if the node version should trigger an unsupported
|
|
12
|
+
* warning.
|
|
13
|
+
*
|
|
14
|
+
* The current rule is that a unsupported warning will be shown if
|
|
15
|
+
*
|
|
16
|
+
* 1. An odd numbered version of Node.js is used - as this will never go to LTS
|
|
17
|
+
* 2. The version is less than the minimum supported version
|
|
18
|
+
*
|
|
19
|
+
* We intentionally do not warn on newer **even** versions of Node.js.
|
|
20
|
+
*/
|
|
21
|
+
function isNodeVersionToWarnOn(nodeVersion) {
|
|
22
|
+
const supportedVersions = constants_1.SUPPORTED_NODE_VERSIONS.join(" || ");
|
|
23
|
+
// If the version is supported, no need to warn and short circuit
|
|
24
|
+
if (semver_1.default.satisfies(nodeVersion, supportedVersions)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (_onOddNumberedVersion(nodeVersion)) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
if (_lessThanMinimumSupportedVersion(nodeVersion, supportedVersions)) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
// A newer version of Node.js that will go to LTS
|
|
34
|
+
// we have opted not to warn.
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
exports.isNodeVersionToWarnOn = isNodeVersionToWarnOn;
|
|
38
|
+
function _onOddNumberedVersion(nodeVersion) {
|
|
39
|
+
return semver_1.default.major(nodeVersion) % 2 === 1;
|
|
40
|
+
}
|
|
41
|
+
function _lessThanMinimumSupportedVersion(nodeVersion, supportedVersions) {
|
|
42
|
+
const minSupportedVersion = semver_1.default.minVersion(supportedVersions);
|
|
43
|
+
(0, errors_1.assertHardhatInvariant)(minSupportedVersion !== null, "Unexpectedly failed to parse the minimum supported version of Node.js");
|
|
44
|
+
return semver_1.default.lt(nodeVersion, minSupportedVersion);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=is-node-version-to-warn-on.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-node-version-to-warn-on.js","sourceRoot":"","sources":["../../src/internal/cli/is-node-version-to-warn-on.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,2CAAwD;AACxD,2CAAsD;AAEtD;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CAAC,WAAmB;IACvD,MAAM,iBAAiB,GAAG,mCAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/D,iEAAiE;IACjE,IAAI,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,qBAAqB,CAAC,WAAW,CAAC,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,gCAAgC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACpE,OAAO,IAAI,CAAC;KACb;IAED,iDAAiD;IACjD,6BAA6B;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAnBD,sDAmBC;AAED,SAAS,qBAAqB,CAAC,WAAmB;IAChD,OAAO,gBAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gCAAgC,CACvC,WAAmB,EACnB,iBAAyB;IAEzB,MAAM,mBAAmB,GAAG,gBAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEjE,IAAA,+BAAsB,EACpB,mBAAmB,KAAK,IAAI,EAC5B,uEAAuE,CACxE,CAAC;IAEF,OAAO,gBAAM,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.d.ts","sourceRoot":"","sources":["../../../src/internal/core/config/default-config.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,iCAAiC,SAAS,CAAC;AACxD,eAAO,MAAM,gDAAgD,aAAM,CAAC;AACpE,eAAO,MAAM,gDAAgD,aAAM,CAAC;AACpE,eAAO,MAAM,wBAAwB,gEAC0B,CAAC;AAChE,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AAEzE,eAAO,MAAM,qBAAqB,YAAuB,CAAC;AAE1D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;CAKzC,CAAC;AAEF,eAAO,MAAM,2CAA2C;;;;;;;CAIvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,2BAA2B,EAAE,IAAI,CAC5C,oBAAoB,EACpB,KAAK,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"default-config.d.ts","sourceRoot":"","sources":["../../../src/internal/core/config/default-config.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,iCAAiC,SAAS,CAAC;AACxD,eAAO,MAAM,gDAAgD,aAAM,CAAC;AACpE,eAAO,MAAM,gDAAgD,aAAM,CAAC;AACpE,eAAO,MAAM,wBAAwB,gEAC0B,CAAC;AAChE,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AAEzE,eAAO,MAAM,qBAAqB,YAAuB,CAAC;AAE1D,eAAO,MAAM,6BAA6B;;;CAGzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;CAKzC,CAAC;AAEF,eAAO,MAAM,2CAA2C;;;;;;;CAIvD,CAAC;AAEF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,2BAA2B,EAAE,IAAI,CAC5C,oBAAoB,EACpB,KAAK,GAAG,aAAa,CAsItB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;CAOpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,YAEvC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;CAWtC,CAAC"}
|
|
@@ -132,6 +132,32 @@ exports.defaultHardhatNetworkParams = {
|
|
|
132
132
|
]),
|
|
133
133
|
},
|
|
134
134
|
],
|
|
135
|
+
// TODO: the rest of this config is a temporary workaround,
|
|
136
|
+
// see https://github.com/NomicFoundation/edr/issues/522
|
|
137
|
+
[
|
|
138
|
+
10,
|
|
139
|
+
{
|
|
140
|
+
hardforkHistory: new Map([[hardforks_1.HardforkName.SHANGHAI, 0]]),
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
[
|
|
144
|
+
11155420,
|
|
145
|
+
{
|
|
146
|
+
hardforkHistory: new Map([[hardforks_1.HardforkName.SHANGHAI, 0]]),
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
[
|
|
150
|
+
42161,
|
|
151
|
+
{
|
|
152
|
+
hardforkHistory: new Map([[hardforks_1.HardforkName.SHANGHAI, 0]]),
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
[
|
|
156
|
+
421614,
|
|
157
|
+
{
|
|
158
|
+
hardforkHistory: new Map([[hardforks_1.HardforkName.SHANGHAI, 0]]),
|
|
159
|
+
},
|
|
160
|
+
],
|
|
135
161
|
]),
|
|
136
162
|
};
|
|
137
163
|
exports.defaultHttpNetworkParams = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/internal/core/config/default-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/internal/core/config/default-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { Artifacts, BoundExperimentalHardhatNetworkMessageTraceHook, EIP1193Provider, HardhatNetworkChainsConfig, RequestArguments } from "../../../types";
|
|
3
|
-
import type { EdrContext
|
|
3
|
+
import type { EdrContext } from "@nomicfoundation/edr";
|
|
4
4
|
import { EventEmitter } from "events";
|
|
5
|
+
import { VMTracer } from "../stack-traces/vm-tracer";
|
|
5
6
|
import { ForkConfig, GenesisAccount, IntervalMiningConfig, MempoolOrder, NodeConfig, TracingConfig } from "./node-types";
|
|
6
7
|
import { LoggerConfig } from "./modules/logger";
|
|
7
8
|
export declare const DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
@@ -30,23 +31,25 @@ interface HardhatNetworkProviderConfig {
|
|
|
30
31
|
enableTransientStorage: boolean;
|
|
31
32
|
}
|
|
32
33
|
export declare function getNodeConfig(config: HardhatNetworkProviderConfig, tracingConfig?: TracingConfig): NodeConfig;
|
|
33
|
-
export interface RawTraceCallbacks {
|
|
34
|
-
onStep?: (messageTrace: TracingStep) => Promise<void>;
|
|
35
|
-
onBeforeMessage?: (messageTrace: TracingMessage) => Promise<void>;
|
|
36
|
-
onAfterMessage?: (messageTrace: ExecutionResult) => Promise<void>;
|
|
37
|
-
}
|
|
38
34
|
export declare class EdrProviderWrapper extends EventEmitter implements EIP1193Provider {
|
|
39
35
|
private readonly _provider;
|
|
40
36
|
private readonly _node;
|
|
41
37
|
private readonly _eventAdapter;
|
|
42
38
|
private readonly _vmTraceDecoder;
|
|
43
|
-
private readonly _rawTraceCallbacks;
|
|
44
39
|
private readonly _common;
|
|
45
40
|
private _failedStackTraces;
|
|
46
41
|
private _callOverrideCallback?;
|
|
42
|
+
/** Used for internal stack trace tests. */
|
|
43
|
+
private _vmTracer?;
|
|
47
44
|
private constructor();
|
|
48
|
-
static create(config: HardhatNetworkProviderConfig, loggerConfig: LoggerConfig,
|
|
45
|
+
static create(config: HardhatNetworkProviderConfig, loggerConfig: LoggerConfig, tracingConfig?: TracingConfig): Promise<EdrProviderWrapper>;
|
|
49
46
|
request(args: RequestArguments): Promise<unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Sets a `VMTracer` that observes EVM throughout requests.
|
|
49
|
+
*
|
|
50
|
+
* Used for internal stack traces integration tests.
|
|
51
|
+
*/
|
|
52
|
+
setVmTracer(vmTracer?: VMTracer): void;
|
|
50
53
|
private _setCallOverrideCallback;
|
|
51
54
|
private _setVerboseTracing;
|
|
52
55
|
private _ethEventListener;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,SAAS,EACT,+CAA+C,EAG/C,eAAe,EAEf,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ class EdrProviderEventAdapter extends events_1.EventEmitter {
|
|
|
95
95
|
class EdrProviderWrapper extends events_1.EventEmitter {
|
|
96
96
|
constructor(_provider,
|
|
97
97
|
// we add this for backwards-compatibility with plugins like solidity-coverage
|
|
98
|
-
_node, _eventAdapter, _vmTraceDecoder,
|
|
98
|
+
_node, _eventAdapter, _vmTraceDecoder,
|
|
99
99
|
// The common configuration for EthereumJS VM is not used by EDR, but tests expect it as part of the provider.
|
|
100
100
|
_common, tracingConfig) {
|
|
101
101
|
super();
|
|
@@ -103,14 +103,13 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
103
103
|
this._node = _node;
|
|
104
104
|
this._eventAdapter = _eventAdapter;
|
|
105
105
|
this._vmTraceDecoder = _vmTraceDecoder;
|
|
106
|
-
this._rawTraceCallbacks = _rawTraceCallbacks;
|
|
107
106
|
this._common = _common;
|
|
108
107
|
this._failedStackTraces = 0;
|
|
109
108
|
if (tracingConfig !== undefined) {
|
|
110
109
|
(0, vm_trace_decoder_1.initializeVmTraceDecoder)(this._vmTraceDecoder, tracingConfig);
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
|
-
static async create(config, loggerConfig,
|
|
112
|
+
static async create(config, loggerConfig, tracingConfig) {
|
|
114
113
|
const { Provider } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
115
114
|
const coinbase = config.coinbase ?? exports.DEFAULT_COINBASE;
|
|
116
115
|
let fork;
|
|
@@ -198,7 +197,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
198
197
|
_vm: (0, minimal_vm_1.getMinimalEthereumJsVm)(provider),
|
|
199
198
|
};
|
|
200
199
|
const common = (0, makeCommon_1.makeCommon)(getNodeConfig(config));
|
|
201
|
-
const wrapper = new EdrProviderWrapper(provider, minimalEthereumJsNode, eventAdapter, vmTraceDecoder,
|
|
200
|
+
const wrapper = new EdrProviderWrapper(provider, minimalEthereumJsNode, eventAdapter, vmTraceDecoder, common, tracingConfig);
|
|
202
201
|
// Pass through all events from the provider
|
|
203
202
|
eventAdapter.addListener("ethEvent", wrapper._ethEventListener.bind(wrapper));
|
|
204
203
|
return wrapper;
|
|
@@ -222,9 +221,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
222
221
|
const response = JSON.parse(responseObject.json);
|
|
223
222
|
const needsTraces = this._node._vm.evm.events.eventNames().length > 0 ||
|
|
224
223
|
this._node._vm.events.eventNames().length > 0 ||
|
|
225
|
-
this.
|
|
226
|
-
this._rawTraceCallbacks.onAfterMessage !== undefined ||
|
|
227
|
-
this._rawTraceCallbacks.onBeforeMessage !== undefined;
|
|
224
|
+
this._vmTracer !== undefined;
|
|
228
225
|
if (needsTraces) {
|
|
229
226
|
const rawTraces = responseObject.traces;
|
|
230
227
|
for (const rawTrace of rawTraces) {
|
|
@@ -239,27 +236,21 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
239
236
|
if (this._node._vm.evm.events.listenerCount("step") > 0) {
|
|
240
237
|
this._node._vm.evm.events.emit("step", (0, convertToEdr_1.edrTracingStepToMinimalInterpreterStep)(traceItem));
|
|
241
238
|
}
|
|
242
|
-
|
|
243
|
-
await this._rawTraceCallbacks.onStep(traceItem);
|
|
244
|
-
}
|
|
239
|
+
this._vmTracer?.addStep(traceItem);
|
|
245
240
|
}
|
|
246
241
|
// afterMessage event
|
|
247
242
|
else if ("executionResult" in traceItem) {
|
|
248
243
|
if (this._node._vm.evm.events.listenerCount("afterMessage") > 0) {
|
|
249
244
|
this._node._vm.evm.events.emit("afterMessage", (0, convertToEdr_1.edrTracingMessageResultToMinimalEVMResult)(traceItem));
|
|
250
245
|
}
|
|
251
|
-
|
|
252
|
-
await this._rawTraceCallbacks.onAfterMessage(traceItem.executionResult);
|
|
253
|
-
}
|
|
246
|
+
this._vmTracer?.addAfterMessage(traceItem.executionResult);
|
|
254
247
|
}
|
|
255
248
|
// beforeMessage event
|
|
256
249
|
else {
|
|
257
250
|
if (this._node._vm.evm.events.listenerCount("beforeMessage") > 0) {
|
|
258
251
|
this._node._vm.evm.events.emit("beforeMessage", (0, convertToEdr_1.edrTracingMessageToMinimalMessage)(traceItem));
|
|
259
252
|
}
|
|
260
|
-
|
|
261
|
-
await this._rawTraceCallbacks.onBeforeMessage(traceItem);
|
|
262
|
-
}
|
|
253
|
+
this._vmTracer?.addBeforeMessage(traceItem);
|
|
263
254
|
}
|
|
264
255
|
}
|
|
265
256
|
// afterTx event
|
|
@@ -313,6 +304,14 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
313
304
|
return response.result;
|
|
314
305
|
}
|
|
315
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Sets a `VMTracer` that observes EVM throughout requests.
|
|
309
|
+
*
|
|
310
|
+
* Used for internal stack traces integration tests.
|
|
311
|
+
*/
|
|
312
|
+
setVmTracer(vmTracer) {
|
|
313
|
+
this._vmTracer = vmTracer;
|
|
314
|
+
}
|
|
316
315
|
// temporarily added to make smock work with HH+EDR
|
|
317
316
|
_setCallOverrideCallback(callback) {
|
|
318
317
|
this._callOverrideCallback = callback;
|
|
@@ -372,17 +371,17 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
372
371
|
return this._failedStackTraces;
|
|
373
372
|
}
|
|
374
373
|
async _rawTraceToSolidityStackTrace(rawTrace) {
|
|
375
|
-
const vmTracer = new vm_tracer_1.VMTracer(
|
|
374
|
+
const vmTracer = new vm_tracer_1.VMTracer();
|
|
376
375
|
const trace = rawTrace.trace();
|
|
377
376
|
for (const traceItem of trace) {
|
|
378
377
|
if ("pc" in traceItem) {
|
|
379
|
-
|
|
378
|
+
vmTracer.addStep(traceItem);
|
|
380
379
|
}
|
|
381
380
|
else if ("executionResult" in traceItem) {
|
|
382
|
-
|
|
381
|
+
vmTracer.addAfterMessage(traceItem.executionResult);
|
|
383
382
|
}
|
|
384
383
|
else {
|
|
385
|
-
|
|
384
|
+
vmTracer.addBeforeMessage(traceItem);
|
|
386
385
|
}
|
|
387
386
|
}
|
|
388
387
|
let vmTrace = vmTracer.getLastTopLevelMessageTrace();
|
|
@@ -410,7 +409,7 @@ async function clientVersion(edrClientVersion) {
|
|
|
410
409
|
return `HardhatNetwork/${hardhatPackage.version}/@nomicfoundation/edr/${edrVersion}`;
|
|
411
410
|
}
|
|
412
411
|
async function createHardhatNetworkProvider(hardhatNetworkProviderConfig, loggerConfig, artifacts) {
|
|
413
|
-
return EdrProviderWrapper.create(hardhatNetworkProviderConfig, loggerConfig,
|
|
412
|
+
return EdrProviderWrapper.create(hardhatNetworkProviderConfig, loggerConfig, await makeTracingConfig(artifacts));
|
|
414
413
|
}
|
|
415
414
|
exports.createHardhatNetworkProvider = createHardhatNetworkProvider;
|
|
416
415
|
async function makeTracingConfig(artifacts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,kDAA0B;AAC1B,kDAA0B;AAC1B,mCAAsC;AACtC,wDAA+B;AAC/B,yCAA2B;AAC3B,oDAA4B;AAE5B,qDAA8D;AAC9D,+CAGyB;AACzB,8DAG6C;AAC7C,0EAA2E;AAC3E,wDAIqC;AACrC,oDAA4D;AAC5D,oDAAuD;AACvD,yEAAmF;AACnF,iEAA8D;AAC9D,+EAA2E;AAC3E,uEAG0C;AAC1C,yDAAyE;AACzE,qEAA2E;AAE3E,mEAAgE;AAChE,yDAAqD;AAErD,wDAAwD;AASxD,uDAQ8B;AAC9B,mDAAgD;AAChD,6CAA4E;AAC5E,gDAA8E;AAE9E,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,uCAAuC,CAAC,CAAC;AAE3D,+EAA+E;AAElE,QAAA,gBAAgB,GAAG,4CAA4C,CAAC;AAC7E,IAAI,iBAAyC,CAAC;AAE9C,0CAA0C;AAC1C,SAAgB,mBAAmB;IACjC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,6BAAmB,EACxC,sBAAsB,CACkB,CAAC;IAE3C,IAAI,iBAAiB,KAAK,SAAS,EAAE;QACnC,+BAA+B;QAC/B,iBAAiB,GAAG,IAAI,UAAU,EAAE,CAAC;KACtC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAXD,kDAWC;AA2BD,SAAgB,aAAa,CAC3B,MAAoC,EACpC,aAA6B;IAE7B,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;QAC7D,aAAa;QACb,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EACX,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QACpE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,wBAAgB;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;QACjE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;KACtD,CAAC;AACJ,CAAC;AAzBD,sCAyBC;AAED,MAAM,uBAAwB,SAAQ,qBAAY;CAAG;AASrD,MAAa,kBACX,SAAQ,qBAAY;IAWpB,YACmB,SAAuB;IACxC,8EAA8E;IAC7D,KAEhB,EACgB,aAAsC,EACtC,eAA+B;IAChD,8GAA8G;IAC7F,OAAe,EAChC,aAA6B;QAE7B,KAAK,EAAE,CAAC;QAXS,cAAS,GAAT,SAAS,CAAc;QAEvB,UAAK,GAAL,KAAK,CAErB;QACgB,kBAAa,GAAb,aAAa,CAAyB;QACtC,oBAAe,GAAf,eAAe,CAAgB;QAE/B,YAAO,GAAP,OAAO,CAAQ;QAjB1B,uBAAkB,GAAG,CAAC,CAAC;QAsB7B,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,IAAA,2CAAwB,EAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,MAAoC,EACpC,YAA0B,EAC1B,aAA6B;QAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAmB,EACtC,sBAAsB,CACkB,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,wBAAgB,CAAC;QAErD,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;YACnC,IAAI,GAAG;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;gBACxC,WAAW,EACT,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS;oBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;oBACvC,CAAC,CAAC,SAAS;aAChB,CAAC;SACH;QAED,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,KAAK,SAAS;YAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QAEhB,4EAA4E;QAC5E,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAEnD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,kBAAS,CAAC;QAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,IAAI,wBAAe,CAAC;QAE5E,MAAM,mBAAmB,GAAG,IAAI,0CAAmB,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,iCAAc,CAAC,mBAAmB,CAAC,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CACxC,mBAAmB,EAAE,EACrB;YACE,4BAA4B,EAC1B,MAAM,CAAC,4BAA4B,IAAI,KAAK;YAC9C,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;YAC7D,iBAAiB,EAAE,MAAM,CAAC,mBAAmB;YAC7C,wBAAwB,EAAE,MAAM,CAAC,0BAA0B;YAC3D,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE;gBAC9D,OAAO;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;oBACxB,SAAS,EAAE,KAAK,CAAC,IAAI,CACnB,cAAc,CAAC,eAAe,EAC9B,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE;wBAC1B,OAAO;4BACL,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;4BAChC,MAAM,EAAE,IAAA,6CAA8B,EACpC,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAC1B;yBACF,CAAC;oBACJ,CAAC,CACF;iBACF,CAAC;YACJ,CAAC,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC,aAAa;YAC9B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YAC/C,IAAI;YACJ,QAAQ,EAAE,IAAA,6CAA8B,EAAC,YAAY,CAAC;YACtD,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtD,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;iBACjC,CAAC;YACJ,CAAC,CAAC;YACF,WAAW;YACX,oBAAoB,EAClB,MAAM,CAAC,oBAAoB,KAAK,SAAS;gBACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAqB,CAAC;gBACtC,CAAC,CAAC,SAAS;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,IAAA,kDAAmC,EAAC,MAAM,CAAC,cAAc,CAAC;gBACpE,OAAO,EAAE;oBACP,KAAK,EAAE,IAAA,sDAAuC,EAAC,MAAM,CAAC,YAAY,CAAC;iBACpE;aACF;YACD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,EACD;YACE,MAAM,EAAE,YAAY,CAAC,OAAO;YAC5B,8BAA8B,EAAE,CAAC,MAAgB,EAAE,EAAE;gBACnD,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;gBAC1C,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;YACD,kCAAkC,EAAE,CAClC,IAAY,EACZ,QAAiB,EACjB,EAAE;gBACF,OAAO,cAAc,CAAC,kCAAkC,CACtD,IAAI,EACJ,QAAQ,CACT,CAAC;YACJ,CAAC;YACD,iBAAiB,EAAE,CAAC,OAAe,EAAE,OAAgB,EAAE,EAAE;gBACvD,IAAI,OAAO,EAAE;oBACX,iBAAiB,CAAC,OAAO,CAAC,CAAC;iBAC5B;qBAAM;oBACL,WAAW,CAAC,OAAO,CAAC,CAAC;iBACtB;YACH,CAAC;SACF,EACD,CAAC,KAAwB,EAAE,EAAE;YAC3B,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CACF,CAAC;QAEF,MAAM,qBAAqB,GAAG;YAC5B,GAAG,EAAE,IAAA,mCAAsB,EAAC,QAAQ,CAAC;SACtC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,uBAAU,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,QAAQ,EACR,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,MAAM,EACN,aAAa,CACd,CAAC;QAEF,4CAA4C;QAC5C,YAAY,CAAC,WAAW,CACtB,UAAU,EACV,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAsB;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5D,MAAM,IAAI,0BAAiB,CACzB,mEAAmE,CACpE,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,8BAA8B,EAAE;YAClD,OAAO,IAAI,CAAC,2BAA2B,CACrC,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAC5C,CAAC;SACH;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,oCAAoC,EAAE;YAC/D,OAAO,IAAI,CAAC,iCAAiC,CAC3C,GAAG,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAClD,CAAC;SACH;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,cAAc,GAAa,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CACjE,eAAe,CAChB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC;YAC7C,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;QAE/B,IAAI,WAAW,EAAE;YACf,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAE/B,iBAAiB;gBACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACxC;gBAED,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE;oBAC7B,aAAa;oBACb,IAAI,IAAI,IAAI,SAAS,EAAE;wBACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;4BACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,MAAM,EACN,IAAA,qDAAsC,EAAC,SAAS,CAAC,CAClD,CAAC;yBACH;wBAED,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;qBACpC;oBACD,qBAAqB;yBAChB,IAAI,iBAAiB,IAAI,SAAS,EAAE;wBACvC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;4BAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,cAAc,EACd,IAAA,wDAAyC,EAAC,SAAS,CAAC,CACrD,CAAC;yBACH;wBAED,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;qBAC5D;oBACD,sBAAsB;yBACjB;wBACH,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;4BAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAC5B,eAAe,EACf,IAAA,gDAAiC,EAAC,SAAS,CAAC,CAC7C,CAAC;yBACH;wBAED,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;qBAC7C;iBACF;gBAED,gBAAgB;gBAChB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACvC;aACF;SACF;QAED,IAAI,IAAA,sBAAe,EAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,KAAK,CAAC;YAEV,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,CAAC;YACnD,IAAI,UAA0C,CAAC;YAC/C,IAAI,aAAa,KAAK,IAAI,EAAE;gBAC1B,UAAU,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;aACtE;YAED,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,KAAK,GAAG,IAAA,0CAAwB,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACrE,yDAAyD;gBACxD,KAAa,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;gBAC5D,KAAa,CAAC,eAAe;oBAC5B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,IAAI,SAAS,CAAC;aACrD;iBAAM;gBACL,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,8BAAqB,CAAC,IAAI,EAAE;oBACtD,KAAK,GAAG,IAAI,8BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC3D;qBAAM;oBACL,KAAK,GAAG,IAAI,sBAAa,CACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,EACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,CACpB,CAAC;iBACH;gBACD,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;aAClC;YAED,sFAAsF;YACtF,MAAM,KAAK,CAAC;SACb;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,uCAA2B,CAAC,CAAC;SACxC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,iDAAqC,CAAC,CAAC;SAClD;QAED,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,oBAAoB,EAAE;YACxC,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM,IACL,IAAI,CAAC,MAAM,KAAK,wBAAwB;YACxC,IAAI,CAAC,MAAM,KAAK,iBAAiB,EACjC;YACA,OAAO,IAAA,wCAAyB,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACnD;aAAM;YACL,OAAO,QAAQ,CAAC,MAAM,CAAC;SACxB;IACH,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,QAAmB;QACpC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,mDAAmD;IAC3C,wBAAwB,CAAC,QAA8B;QAC7D,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QAEtC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACpC,KAAK,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE;YACtC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,OAAgB;QACzC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,iBAAiB,CAAC,KAAwB;QAChD,MAAM,YAAY,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAC1D;IACH,CAAC;IAEO,4BAA4B,CAAC,YAAoB,EAAE,MAAW;QACpE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,YAAY;YACZ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAEO,6BAA6B,CAAC,YAAoB,EAAE,MAAe;QACzE,MAAM,OAAO,GAAoB;YAC/B,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE;gBACJ,YAAY;gBACZ,MAAM;aACP;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,2BAA2B,CACjC,MAAa;QAEb,OAAO,IAAA,2BAAc,EACnB,MAAM,EACN,CAAC,CAAC,MAAM,EACR,uBAAgB,EAChB,wBAAiB,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,WAAmB,EACnB,aAA4B,EAC5B,cAA8B;QAE9B,IAAI,SAAS,CAAC;QACd,IAAI;YACF,SAAS,GAAG,IAAA,kDAA8B,EACxC,WAAW,EACX,aAAa,EACb,cAAc,CACf,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,oGAAoG,CACrG,CACF,CAAC;YAEF,GAAG,CACD,4FAA4F,EAC5F,KAAK,CACN,CAAC;YAEF,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iCAAiC,CAAC,MAAa;QACrD,OAAO,IAAA,2BAAc,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,iCAAiC;QACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,QAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,oBAAQ,EAAE,CAAC;QAEhC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE;YAC7B,IAAI,IAAI,IAAI,SAAS,EAAE;gBACrB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aAC7B;iBAAM,IAAI,iBAAiB,IAAI,SAAS,EAAE;gBACzC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;aACrD;iBAAM;gBACL,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aACtC;SACF;QAED,IAAI,OAAO,GAAG,QAAQ,CAAC,2BAA2B,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACjE;QAED,IAAI;YACF,IAAI,OAAO,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;gBACxD,MAAM,aAAa,CAAC;aACrB;YAED,MAAM,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;YAC5C,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAC7B,GAAG,CACD,kFAAkF,EAClF,GAAG,CACJ,CAAC;SACH;IACH,CAAC;CACF;AArcD,gDAqcC;AAED,KAAK,UAAU,aAAa,CAAC,gBAAwB;IACnD,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAc,GAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,kBAAkB,cAAc,CAAC,OAAO,yBAAyB,UAAU,EAAE,CAAC;AACvF,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAChD,4BAA0D,EAC1D,YAA0B,EAC1B,SAAqB;IAErB,OAAO,kBAAkB,CAAC,MAAM,CAC9B,4BAA4B,EAC5B,YAAY,EACZ,MAAM,iBAAiB,CAAC,SAAS,CAAC,CACnC,CAAC;AACJ,CAAC;AAVD,oEAUC;AAED,KAAK,UAAU,iBAAiB,CAC9B,SAAgC;IAEhC,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAE3D,IAAI;YACF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;gBAC1C,MAAM,SAAS,GAAG,MAAM,kBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACxD,IAAI,gBAAM,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,wCAA4B,CAAC,EAAE;oBACnE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC5B;aACF;YAED,OAAO;gBACL,UAAU;aACX,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,yFAAyF,CAC1F,CACF,CAAC;YAEF,GAAG,CACD,gIAAgI,EAChI,KAAK,CACN,CAAC;SACH;KACF;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI3E,oBAAY,QAAQ;IAClB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,UAAU,IAAA;IACV,cAAc,IAAA;IACd,cAAc,IAAA;IACd,eAAe,IAAA;IACf,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;CACpB;AAED,qBAAa,IAAI;IA+CI,IAAI,EAAE,QAAQ;WA9CnB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAejD,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;gBA+B9C,IAAI,EAAE,QAAQ;IAE1B,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI3E,oBAAY,QAAQ;IAClB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,UAAU,IAAA;IACV,cAAc,IAAA;IACd,cAAc,IAAA;IACd,eAAe,IAAA;IACf,wBAAwB,IAAA;IACxB,gBAAgB,IAAA;IAChB,mBAAmB,IAAA;CACpB;AAED,qBAAa,IAAI;IA+CI,IAAI,EAAE,QAAQ;WA9CnB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;WAejD,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;gBA+B9C,IAAI,EAAE,QAAQ;IAE1B,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,MAAM;CAwB3B"}
|
|
@@ -76,22 +76,6 @@ class Exit {
|
|
|
76
76
|
}
|
|
77
77
|
const _exhaustiveCheck = this.kind;
|
|
78
78
|
}
|
|
79
|
-
getEdrExceptionalHalt() {
|
|
80
|
-
const { ExceptionalHalt } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
81
|
-
switch (this.kind) {
|
|
82
|
-
case ExitCode.OUT_OF_GAS:
|
|
83
|
-
return 0 /* ExceptionalHalt.OutOfGas */;
|
|
84
|
-
case ExitCode.INVALID_OPCODE:
|
|
85
|
-
return 1 /* ExceptionalHalt.OpcodeNotFound */;
|
|
86
|
-
case ExitCode.CODESIZE_EXCEEDS_MAXIMUM:
|
|
87
|
-
return 11 /* ExceptionalHalt.CreateContractSizeLimit */;
|
|
88
|
-
case ExitCode.CREATE_COLLISION:
|
|
89
|
-
return 8 /* ExceptionalHalt.CreateCollision */;
|
|
90
|
-
default:
|
|
91
|
-
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
92
|
-
throw new Error(`Unmatched exit code: ${this.kind}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
79
|
}
|
|
96
80
|
exports.Exit = Exit;
|
|
97
81
|
//# sourceMappingURL=exit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":";;;AAEA,wDAAiE;AAEjE,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,mDAAU,CAAA;IACV,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,+DAAgB,CAAA;IAChB,qEAAmB,CAAA;AACrB,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,MAAa,IAAI;IACR,MAAM,CAAC,oBAAoB,CAAC,MAAqB;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,6BAAmB,EAC3C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,MAAM,EAAE;YACd,gCAAwB;YACxB,kCAA0B;YAC1B;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAU,MAAM,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,IAAqB;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAC7C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEvC,4CAAoC;YACpC,6CAAqC;YACrC,8DAA8D;YAC9D;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE5C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE7C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;gBACP,sFAAsF;gBACtF,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,YAAmB,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE9B,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,SAAS;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ,CAAC,MAAM;gBAClB,OAAO,UAAU,CAAC;YACpB,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,YAAY,CAAC;YACtB,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,eAAe;gBAC3B,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ,CAAC,wBAAwB;gBACpC,OAAO,0BAA0B,CAAC;YACpC,KAAK,QAAQ,CAAC,gBAAgB;gBAC5B,OAAO,kBAAkB,CAAC;YAC5B,KAAK,QAAQ,CAAC,mBAAmB;gBAC/B,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,gBAAgB,GAAU,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":";;;AAEA,wDAAiE;AAEjE,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,mDAAU,CAAA;IACV,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,+DAAgB,CAAA;IAChB,qEAAmB,CAAA;AACrB,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,MAAa,IAAI;IACR,MAAM,CAAC,oBAAoB,CAAC,MAAqB;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,6BAAmB,EAC3C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,MAAM,EAAE;YACd,gCAAwB;YACxB,kCAA0B;YAC1B;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAU,MAAM,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,IAAqB;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAC7C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEvC,4CAAoC;YACpC,6CAAqC;YACrC,8DAA8D;YAC9D;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE5C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE7C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;gBACP,sFAAsF;gBACtF,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,YAAmB,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE9B,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,SAAS;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ,CAAC,MAAM;gBAClB,OAAO,UAAU,CAAC;YACpB,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,YAAY,CAAC;YACtB,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,eAAe;gBAC3B,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ,CAAC,wBAAwB;gBACpC,OAAO,0BAA0B,CAAC;YACpC,KAAK,QAAQ,CAAC,gBAAgB;gBAC5B,OAAO,kBAAkB,CAAC;YAC5B,KAAK,QAAQ,CAAC,mBAAmB;gBAC/B,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,gBAAgB,GAAU,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;CACF;AA7ED,oBA6EC"}
|
|
@@ -17,8 +17,6 @@ export interface PrecompileMessageTrace extends BaseMessageTrace {
|
|
|
17
17
|
}
|
|
18
18
|
export interface BaseEvmMessageTrace extends BaseMessageTrace {
|
|
19
19
|
code: Uint8Array;
|
|
20
|
-
value: bigint;
|
|
21
|
-
returnData: Uint8Array;
|
|
22
20
|
steps: MessageTraceStep[];
|
|
23
21
|
bytecode?: Bytecode;
|
|
24
22
|
numberOfSubtraces: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"message-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAGpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,sBAAsB,CAEjC;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,kBAAkB,CAE7B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,gBAAgB,CAE1E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,IAAI,OAAO,CAEjE;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,UAAU,CAEtB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,GAAG,YAAY,GAChC,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,aAAa,CAGzB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,YAAY,CAExB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,GAChD,MAAM,IAAI,UAAU,CAEtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"message-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/message-trace.ts"],"names":[],"mappings":";;;AA6DA,SAAgB,iBAAiB,CAC/B,KAAmB;IAEnB,OAAO,YAAY,IAAI,KAAK,CAAC;AAC/B,CAAC;AAJD,8CAIC;AAED,SAAgB,aAAa,CAC3B,KAAmB;IAEnB,OAAO,MAAM,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAJD,sCAIC;AAED,SAAgB,oBAAoB,CAClC,KAAmB;IAEnB,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9D,CAAC;AAJD,oDAIC;AAED,SAAgB,WAAW,CAAC,KAAmB;IAC7C,OAAO,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AAChD,CAAC;AAFD,kCAEC;AAED,SAAgB,kBAAkB,CAChC,KAAmB;IAEnB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC5D,CAAC;AAJD,gDAIC;AAED,SAAgB,SAAS,CAAC,IAAsB;IAC9C,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC;AAQD,SAAgB,YAAY,CAC1B,MAAiC;IAEjC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAJD,oCAIC;AAED,SAAgB,cAAc,CAC5B,MAAiC;IAEjC,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAJD,wCAIC;AAED,SAAgB,eAAe,CAC7B,MAAiD;IAEjD,0CAA0C;IAC1C,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AALD,0CAKC;AAED,SAAgB,cAAc,CAC5B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,wCAIC;AAED,SAAgB,YAAY,CAC1B,MAAiD;IAEjD,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAC/B,CAAC;AAJD,oCAIC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import type { ExecutionResult, TracingMessage, TracingStep } from "@nomicfoundation/edr";
|
|
2
|
-
import { Exit } from "../provider/vm/exit";
|
|
3
2
|
import { MessageTrace } from "./message-trace";
|
|
3
|
+
/**
|
|
4
|
+
* Consumes the incoming VM trace events, until an error occurs, to keep track
|
|
5
|
+
* of the last top level message trace/error.
|
|
6
|
+
*/
|
|
4
7
|
export declare class VMTracer {
|
|
5
|
-
private readonly _throwErrors;
|
|
6
8
|
tracingSteps: TracingStep[];
|
|
7
9
|
private _messageTraces;
|
|
8
10
|
private _lastError;
|
|
9
11
|
private _maxPrecompileNumber;
|
|
10
|
-
constructor(
|
|
12
|
+
constructor();
|
|
11
13
|
getLastTopLevelMessageTrace(): MessageTrace | undefined;
|
|
12
14
|
getLastError(): Error | undefined;
|
|
13
|
-
clearLastError(): void;
|
|
14
15
|
private _shouldKeepTracing;
|
|
15
|
-
addBeforeMessage(message: TracingMessage):
|
|
16
|
-
addStep(step: TracingStep):
|
|
17
|
-
addAfterMessage(result: ExecutionResult
|
|
16
|
+
addBeforeMessage(message: TracingMessage): void;
|
|
17
|
+
addStep(step: TracingStep): void;
|
|
18
|
+
addAfterMessage(result: ExecutionResult): void;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=vm-tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAOL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAOzB;;;GAGG;AACH,qBAAa,QAAQ;IACZ,YAAY,EAAE,WAAW,EAAE,CAAM;IAExC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,oBAAoB,CAAC;;IAOtB,2BAA2B,IAAI,YAAY,GAAG,SAAS;IAIvD,YAAY,IAAI,KAAK,GAAG,SAAS;IAIxC,OAAO,CAAC,kBAAkB;IAInB,gBAAgB,CAAC,OAAO,EAAE,cAAc;IA6FxC,OAAO,CAAC,IAAI,EAAE,WAAW;IAsBzB,eAAe,CAAC,MAAM,EAAE,eAAe;CAoC/C"}
|
|
@@ -8,9 +8,12 @@ const message_trace_1 = require("./message-trace");
|
|
|
8
8
|
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
9
9
|
const DUMMY_RETURN_DATA = Buffer.from([]);
|
|
10
10
|
const DUMMY_GAS_USED = 0n;
|
|
11
|
+
/**
|
|
12
|
+
* Consumes the incoming VM trace events, until an error occurs, to keep track
|
|
13
|
+
* of the last top level message trace/error.
|
|
14
|
+
*/
|
|
11
15
|
class VMTracer {
|
|
12
|
-
constructor(
|
|
13
|
-
this._throwErrors = _throwErrors;
|
|
16
|
+
constructor() {
|
|
14
17
|
this.tracingSteps = [];
|
|
15
18
|
this._messageTraces = [];
|
|
16
19
|
// TODO: temporarily hardcoded to remove the need of using ethereumjs' common and evm here
|
|
@@ -22,13 +25,10 @@ class VMTracer {
|
|
|
22
25
|
getLastError() {
|
|
23
26
|
return this._lastError;
|
|
24
27
|
}
|
|
25
|
-
clearLastError() {
|
|
26
|
-
this._lastError = undefined;
|
|
27
|
-
}
|
|
28
28
|
_shouldKeepTracing() {
|
|
29
|
-
return this.
|
|
29
|
+
return this._lastError === undefined;
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
addBeforeMessage(message) {
|
|
32
32
|
if (!this._shouldKeepTracing()) {
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
@@ -99,15 +99,10 @@ class VMTracer {
|
|
|
99
99
|
this._messageTraces.push(trace);
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
102
|
-
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
this._lastError = error;
|
|
107
|
-
}
|
|
102
|
+
this._lastError = error;
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
|
-
|
|
105
|
+
addStep(step) {
|
|
111
106
|
if (!this._shouldKeepTracing()) {
|
|
112
107
|
return;
|
|
113
108
|
}
|
|
@@ -120,15 +115,10 @@ class VMTracer {
|
|
|
120
115
|
trace.steps.push({ pc: Number(step.pc) });
|
|
121
116
|
}
|
|
122
117
|
catch (error) {
|
|
123
|
-
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this._lastError = error;
|
|
128
|
-
}
|
|
118
|
+
this._lastError = error;
|
|
129
119
|
}
|
|
130
120
|
}
|
|
131
|
-
|
|
121
|
+
addAfterMessage(result) {
|
|
132
122
|
if (!this._shouldKeepTracing()) {
|
|
133
123
|
return;
|
|
134
124
|
}
|
|
@@ -144,8 +134,7 @@ class VMTracer {
|
|
|
144
134
|
}
|
|
145
135
|
}
|
|
146
136
|
else if ((0, message_trace_1.isHaltResult)(executionResult)) {
|
|
147
|
-
trace.exit =
|
|
148
|
-
haltOverride ?? exit_1.Exit.fromEdrExceptionalHalt(executionResult.reason);
|
|
137
|
+
trace.exit = exit_1.Exit.fromEdrExceptionalHalt(executionResult.reason);
|
|
149
138
|
trace.returnData = Buffer.from([]);
|
|
150
139
|
}
|
|
151
140
|
else {
|
|
@@ -157,12 +146,7 @@ class VMTracer {
|
|
|
157
146
|
}
|
|
158
147
|
}
|
|
159
148
|
catch (error) {
|
|
160
|
-
|
|
161
|
-
throw error;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
this._lastError = error;
|
|
165
|
-
}
|
|
149
|
+
this._lastError = error;
|
|
166
150
|
}
|
|
167
151
|
}
|
|
168
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";;;AAOA,sEAAiE;AAEjE,8CAA2D;AAC3D,8CAAqD;AAErD,mDASyB;AAEzB,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAa,QAAQ;IAOnB
|
|
1
|
+
{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.22.
|
|
3
|
+
"version": "2.22.6",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"dependencies": {
|
|
86
86
|
"@ethersproject/abi": "^5.1.2",
|
|
87
87
|
"@metamask/eth-sig-util": "^4.0.0",
|
|
88
|
-
"@nomicfoundation/edr": "^0.4.
|
|
88
|
+
"@nomicfoundation/edr": "^0.4.1",
|
|
89
89
|
"@nomicfoundation/ethereumjs-common": "4.0.4",
|
|
90
90
|
"@nomicfoundation/ethereumjs-tx": "5.0.4",
|
|
91
91
|
"@nomicfoundation/ethereumjs-util": "9.0.4",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"raw-body": "^2.4.1",
|
|
120
120
|
"resolve": "1.17.0",
|
|
121
121
|
"semver": "^6.3.0",
|
|
122
|
-
"solc": "0.
|
|
122
|
+
"solc": "0.8.26",
|
|
123
123
|
"source-map-support": "^0.5.13",
|
|
124
124
|
"stacktrace-parser": "^0.1.10",
|
|
125
125
|
"tsort": "0.0.1",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { isNodeVersionToWarnOn } from "./is-node-version-to-warn-on";
|
|
6
6
|
|
|
7
|
-
if (
|
|
7
|
+
if (isNodeVersionToWarnOn(process.version)) {
|
|
8
8
|
console.warn(
|
|
9
9
|
chalk.yellow.bold(`WARNING:`),
|
|
10
10
|
`You are currently using Node.js ${process.version}, which is not supported by Hardhat. This can lead to unexpected behavior. See https://hardhat.org/nodejs-versions`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0"];
|
|
1
|
+
export const SUPPORTED_NODE_VERSIONS = ["^18.0.0", "^20.0.0", "^22.0.0"];
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import semver from "semver";
|
|
2
|
+
|
|
3
|
+
import { assertHardhatInvariant } from "../core/errors";
|
|
4
|
+
import { SUPPORTED_NODE_VERSIONS } from "./constants";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Determine if the node version should trigger an unsupported
|
|
8
|
+
* warning.
|
|
9
|
+
*
|
|
10
|
+
* The current rule is that a unsupported warning will be shown if
|
|
11
|
+
*
|
|
12
|
+
* 1. An odd numbered version of Node.js is used - as this will never go to LTS
|
|
13
|
+
* 2. The version is less than the minimum supported version
|
|
14
|
+
*
|
|
15
|
+
* We intentionally do not warn on newer **even** versions of Node.js.
|
|
16
|
+
*/
|
|
17
|
+
export function isNodeVersionToWarnOn(nodeVersion: string): boolean {
|
|
18
|
+
const supportedVersions = SUPPORTED_NODE_VERSIONS.join(" || ");
|
|
19
|
+
|
|
20
|
+
// If the version is supported, no need to warn and short circuit
|
|
21
|
+
if (semver.satisfies(nodeVersion, supportedVersions)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (_onOddNumberedVersion(nodeVersion)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (_lessThanMinimumSupportedVersion(nodeVersion, supportedVersions)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// A newer version of Node.js that will go to LTS
|
|
34
|
+
// we have opted not to warn.
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _onOddNumberedVersion(nodeVersion: string) {
|
|
39
|
+
return semver.major(nodeVersion) % 2 === 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function _lessThanMinimumSupportedVersion(
|
|
43
|
+
nodeVersion: string,
|
|
44
|
+
supportedVersions: string
|
|
45
|
+
) {
|
|
46
|
+
const minSupportedVersion = semver.minVersion(supportedVersions);
|
|
47
|
+
|
|
48
|
+
assertHardhatInvariant(
|
|
49
|
+
minSupportedVersion !== null,
|
|
50
|
+
"Unexpectedly failed to parse the minimum supported version of Node.js"
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return semver.lt(nodeVersion, minSupportedVersion);
|
|
54
|
+
}
|
|
@@ -141,6 +141,32 @@ export const defaultHardhatNetworkParams: Omit<
|
|
|
141
141
|
]),
|
|
142
142
|
},
|
|
143
143
|
],
|
|
144
|
+
// TODO: the rest of this config is a temporary workaround,
|
|
145
|
+
// see https://github.com/NomicFoundation/edr/issues/522
|
|
146
|
+
[
|
|
147
|
+
10, // optimism mainnet
|
|
148
|
+
{
|
|
149
|
+
hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
[
|
|
153
|
+
11155420, // optimism sepolia
|
|
154
|
+
{
|
|
155
|
+
hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
[
|
|
159
|
+
42161, // arbitrum one
|
|
160
|
+
{
|
|
161
|
+
hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
421614, // arbitrum sepolia
|
|
166
|
+
{
|
|
167
|
+
hardforkHistory: new Map([[HardforkName.SHANGHAI, 0]]),
|
|
168
|
+
},
|
|
169
|
+
],
|
|
144
170
|
]),
|
|
145
171
|
};
|
|
146
172
|
|
|
@@ -12,12 +12,9 @@ import type {
|
|
|
12
12
|
import type {
|
|
13
13
|
EdrContext,
|
|
14
14
|
Provider as EdrProviderT,
|
|
15
|
-
ExecutionResult,
|
|
16
15
|
RawTrace,
|
|
17
16
|
Response,
|
|
18
17
|
SubscriptionEvent,
|
|
19
|
-
TracingMessage,
|
|
20
|
-
TracingStep,
|
|
21
18
|
} from "@nomicfoundation/edr";
|
|
22
19
|
import { Common } from "@nomicfoundation/ethereumjs-common";
|
|
23
20
|
import chalk from "chalk";
|
|
@@ -152,12 +149,6 @@ export function getNodeConfig(
|
|
|
152
149
|
};
|
|
153
150
|
}
|
|
154
151
|
|
|
155
|
-
export interface RawTraceCallbacks {
|
|
156
|
-
onStep?: (messageTrace: TracingStep) => Promise<void>;
|
|
157
|
-
onBeforeMessage?: (messageTrace: TracingMessage) => Promise<void>;
|
|
158
|
-
onAfterMessage?: (messageTrace: ExecutionResult) => Promise<void>;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
152
|
class EdrProviderEventAdapter extends EventEmitter {}
|
|
162
153
|
|
|
163
154
|
type CallOverrideCallback = (
|
|
@@ -176,6 +167,9 @@ export class EdrProviderWrapper
|
|
|
176
167
|
// temporarily added to make smock work with HH+EDR
|
|
177
168
|
private _callOverrideCallback?: CallOverrideCallback;
|
|
178
169
|
|
|
170
|
+
/** Used for internal stack trace tests. */
|
|
171
|
+
private _vmTracer?: VMTracer;
|
|
172
|
+
|
|
179
173
|
private constructor(
|
|
180
174
|
private readonly _provider: EdrProviderT,
|
|
181
175
|
// we add this for backwards-compatibility with plugins like solidity-coverage
|
|
@@ -184,7 +178,6 @@ export class EdrProviderWrapper
|
|
|
184
178
|
},
|
|
185
179
|
private readonly _eventAdapter: EdrProviderEventAdapter,
|
|
186
180
|
private readonly _vmTraceDecoder: VmTraceDecoder,
|
|
187
|
-
private readonly _rawTraceCallbacks: RawTraceCallbacks,
|
|
188
181
|
// The common configuration for EthereumJS VM is not used by EDR, but tests expect it as part of the provider.
|
|
189
182
|
private readonly _common: Common,
|
|
190
183
|
tracingConfig?: TracingConfig
|
|
@@ -199,7 +192,6 @@ export class EdrProviderWrapper
|
|
|
199
192
|
public static async create(
|
|
200
193
|
config: HardhatNetworkProviderConfig,
|
|
201
194
|
loggerConfig: LoggerConfig,
|
|
202
|
-
rawTraceCallbacks: RawTraceCallbacks,
|
|
203
195
|
tracingConfig?: TracingConfig
|
|
204
196
|
): Promise<EdrProviderWrapper> {
|
|
205
197
|
const { Provider } = requireNapiRsModule(
|
|
@@ -325,7 +317,6 @@ export class EdrProviderWrapper
|
|
|
325
317
|
minimalEthereumJsNode,
|
|
326
318
|
eventAdapter,
|
|
327
319
|
vmTraceDecoder,
|
|
328
|
-
rawTraceCallbacks,
|
|
329
320
|
common,
|
|
330
321
|
tracingConfig
|
|
331
322
|
);
|
|
@@ -371,9 +362,7 @@ export class EdrProviderWrapper
|
|
|
371
362
|
const needsTraces =
|
|
372
363
|
this._node._vm.evm.events.eventNames().length > 0 ||
|
|
373
364
|
this._node._vm.events.eventNames().length > 0 ||
|
|
374
|
-
this.
|
|
375
|
-
this._rawTraceCallbacks.onAfterMessage !== undefined ||
|
|
376
|
-
this._rawTraceCallbacks.onBeforeMessage !== undefined;
|
|
365
|
+
this._vmTracer !== undefined;
|
|
377
366
|
|
|
378
367
|
if (needsTraces) {
|
|
379
368
|
const rawTraces = responseObject.traces;
|
|
@@ -394,9 +383,8 @@ export class EdrProviderWrapper
|
|
|
394
383
|
edrTracingStepToMinimalInterpreterStep(traceItem)
|
|
395
384
|
);
|
|
396
385
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
}
|
|
386
|
+
|
|
387
|
+
this._vmTracer?.addStep(traceItem);
|
|
400
388
|
}
|
|
401
389
|
// afterMessage event
|
|
402
390
|
else if ("executionResult" in traceItem) {
|
|
@@ -406,11 +394,8 @@ export class EdrProviderWrapper
|
|
|
406
394
|
edrTracingMessageResultToMinimalEVMResult(traceItem)
|
|
407
395
|
);
|
|
408
396
|
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
traceItem.executionResult
|
|
412
|
-
);
|
|
413
|
-
}
|
|
397
|
+
|
|
398
|
+
this._vmTracer?.addAfterMessage(traceItem.executionResult);
|
|
414
399
|
}
|
|
415
400
|
// beforeMessage event
|
|
416
401
|
else {
|
|
@@ -420,9 +405,8 @@ export class EdrProviderWrapper
|
|
|
420
405
|
edrTracingMessageToMinimalMessage(traceItem)
|
|
421
406
|
);
|
|
422
407
|
}
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
408
|
+
|
|
409
|
+
this._vmTracer?.addBeforeMessage(traceItem);
|
|
426
410
|
}
|
|
427
411
|
}
|
|
428
412
|
|
|
@@ -484,6 +468,15 @@ export class EdrProviderWrapper
|
|
|
484
468
|
}
|
|
485
469
|
}
|
|
486
470
|
|
|
471
|
+
/**
|
|
472
|
+
* Sets a `VMTracer` that observes EVM throughout requests.
|
|
473
|
+
*
|
|
474
|
+
* Used for internal stack traces integration tests.
|
|
475
|
+
*/
|
|
476
|
+
public setVmTracer(vmTracer?: VMTracer) {
|
|
477
|
+
this._vmTracer = vmTracer;
|
|
478
|
+
}
|
|
479
|
+
|
|
487
480
|
// temporarily added to make smock work with HH+EDR
|
|
488
481
|
private _setCallOverrideCallback(callback: CallOverrideCallback) {
|
|
489
482
|
this._callOverrideCallback = callback;
|
|
@@ -583,16 +576,16 @@ export class EdrProviderWrapper
|
|
|
583
576
|
private async _rawTraceToSolidityStackTrace(
|
|
584
577
|
rawTrace: RawTrace
|
|
585
578
|
): Promise<SolidityStackTrace | undefined> {
|
|
586
|
-
const vmTracer = new VMTracer(
|
|
579
|
+
const vmTracer = new VMTracer();
|
|
587
580
|
|
|
588
581
|
const trace = rawTrace.trace();
|
|
589
582
|
for (const traceItem of trace) {
|
|
590
583
|
if ("pc" in traceItem) {
|
|
591
|
-
|
|
584
|
+
vmTracer.addStep(traceItem);
|
|
592
585
|
} else if ("executionResult" in traceItem) {
|
|
593
|
-
|
|
586
|
+
vmTracer.addAfterMessage(traceItem.executionResult);
|
|
594
587
|
} else {
|
|
595
|
-
|
|
588
|
+
vmTracer.addBeforeMessage(traceItem);
|
|
596
589
|
}
|
|
597
590
|
}
|
|
598
591
|
|
|
@@ -634,7 +627,6 @@ export async function createHardhatNetworkProvider(
|
|
|
634
627
|
return EdrProviderWrapper.create(
|
|
635
628
|
hardhatNetworkProviderConfig,
|
|
636
629
|
loggerConfig,
|
|
637
|
-
{},
|
|
638
630
|
await makeTracingConfig(artifacts)
|
|
639
631
|
);
|
|
640
632
|
}
|
|
@@ -91,25 +91,4 @@ export class Exit {
|
|
|
91
91
|
|
|
92
92
|
const _exhaustiveCheck: never = this.kind;
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
public getEdrExceptionalHalt(): ExceptionalHalt {
|
|
96
|
-
const { ExceptionalHalt } = requireNapiRsModule(
|
|
97
|
-
"@nomicfoundation/edr"
|
|
98
|
-
) as typeof import("@nomicfoundation/edr");
|
|
99
|
-
|
|
100
|
-
switch (this.kind) {
|
|
101
|
-
case ExitCode.OUT_OF_GAS:
|
|
102
|
-
return ExceptionalHalt.OutOfGas;
|
|
103
|
-
case ExitCode.INVALID_OPCODE:
|
|
104
|
-
return ExceptionalHalt.OpcodeNotFound;
|
|
105
|
-
case ExitCode.CODESIZE_EXCEEDS_MAXIMUM:
|
|
106
|
-
return ExceptionalHalt.CreateContractSizeLimit;
|
|
107
|
-
case ExitCode.CREATE_COLLISION:
|
|
108
|
-
return ExceptionalHalt.CreateCollision;
|
|
109
|
-
|
|
110
|
-
default:
|
|
111
|
-
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
112
|
-
throw new Error(`Unmatched exit code: ${this.kind}`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
94
|
}
|
|
@@ -34,8 +34,6 @@ export interface PrecompileMessageTrace extends BaseMessageTrace {
|
|
|
34
34
|
|
|
35
35
|
export interface BaseEvmMessageTrace extends BaseMessageTrace {
|
|
36
36
|
code: Uint8Array;
|
|
37
|
-
value: bigint;
|
|
38
|
-
returnData: Uint8Array;
|
|
39
37
|
steps: MessageTraceStep[];
|
|
40
38
|
bytecode?: Bytecode;
|
|
41
39
|
// The following is just an optimization: When processing this traces it's useful to know ahead of
|
|
@@ -26,6 +26,10 @@ import {
|
|
|
26
26
|
const DUMMY_RETURN_DATA = Buffer.from([]);
|
|
27
27
|
const DUMMY_GAS_USED = 0n;
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Consumes the incoming VM trace events, until an error occurs, to keep track
|
|
31
|
+
* of the last top level message trace/error.
|
|
32
|
+
*/
|
|
29
33
|
export class VMTracer {
|
|
30
34
|
public tracingSteps: TracingStep[] = [];
|
|
31
35
|
|
|
@@ -33,7 +37,7 @@ export class VMTracer {
|
|
|
33
37
|
private _lastError: Error | undefined;
|
|
34
38
|
private _maxPrecompileNumber;
|
|
35
39
|
|
|
36
|
-
constructor(
|
|
40
|
+
constructor() {
|
|
37
41
|
// TODO: temporarily hardcoded to remove the need of using ethereumjs' common and evm here
|
|
38
42
|
this._maxPrecompileNumber = 10;
|
|
39
43
|
}
|
|
@@ -46,15 +50,11 @@ export class VMTracer {
|
|
|
46
50
|
return this._lastError;
|
|
47
51
|
}
|
|
48
52
|
|
|
49
|
-
public clearLastError() {
|
|
50
|
-
this._lastError = undefined;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
53
|
private _shouldKeepTracing() {
|
|
54
|
-
return this.
|
|
54
|
+
return this._lastError === undefined;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
public
|
|
57
|
+
public addBeforeMessage(message: TracingMessage) {
|
|
58
58
|
if (!this._shouldKeepTracing()) {
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
@@ -143,15 +143,11 @@ export class VMTracer {
|
|
|
143
143
|
|
|
144
144
|
this._messageTraces.push(trace);
|
|
145
145
|
} catch (error) {
|
|
146
|
-
|
|
147
|
-
throw error;
|
|
148
|
-
} else {
|
|
149
|
-
this._lastError = error as Error;
|
|
150
|
-
}
|
|
146
|
+
this._lastError = error as Error;
|
|
151
147
|
}
|
|
152
148
|
}
|
|
153
149
|
|
|
154
|
-
public
|
|
150
|
+
public addStep(step: TracingStep) {
|
|
155
151
|
if (!this._shouldKeepTracing()) {
|
|
156
152
|
return;
|
|
157
153
|
}
|
|
@@ -169,15 +165,11 @@ export class VMTracer {
|
|
|
169
165
|
|
|
170
166
|
trace.steps.push({ pc: Number(step.pc) });
|
|
171
167
|
} catch (error) {
|
|
172
|
-
|
|
173
|
-
throw error;
|
|
174
|
-
} else {
|
|
175
|
-
this._lastError = error as Error;
|
|
176
|
-
}
|
|
168
|
+
this._lastError = error as Error;
|
|
177
169
|
}
|
|
178
170
|
}
|
|
179
171
|
|
|
180
|
-
public
|
|
172
|
+
public addAfterMessage(result: ExecutionResult) {
|
|
181
173
|
if (!this._shouldKeepTracing()) {
|
|
182
174
|
return;
|
|
183
175
|
}
|
|
@@ -197,8 +189,7 @@ export class VMTracer {
|
|
|
197
189
|
).address;
|
|
198
190
|
}
|
|
199
191
|
} else if (isHaltResult(executionResult)) {
|
|
200
|
-
trace.exit =
|
|
201
|
-
haltOverride ?? Exit.fromEdrExceptionalHalt(executionResult.reason);
|
|
192
|
+
trace.exit = Exit.fromEdrExceptionalHalt(executionResult.reason);
|
|
202
193
|
|
|
203
194
|
trace.returnData = Buffer.from([]);
|
|
204
195
|
} else {
|
|
@@ -211,11 +202,7 @@ export class VMTracer {
|
|
|
211
202
|
this._messageTraces.pop();
|
|
212
203
|
}
|
|
213
204
|
} catch (error) {
|
|
214
|
-
|
|
215
|
-
throw error;
|
|
216
|
-
} else {
|
|
217
|
-
this._lastError = error as Error;
|
|
218
|
-
}
|
|
205
|
+
this._lastError = error as Error;
|
|
219
206
|
}
|
|
220
207
|
}
|
|
221
208
|
}
|