hardhat 2.26.5 → 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/internal/hardhat-network/provider/provider.d.ts +8 -3
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +155 -56
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts +5 -2
- package/internal/hardhat-network/provider/utils/convertToEdr.d.ts.map +1 -1
- package/internal/hardhat-network/provider/utils/convertToEdr.js +38 -24
- package/internal/hardhat-network/provider/utils/convertToEdr.js.map +1 -1
- package/package.json +2 -2
- package/src/internal/hardhat-network/provider/provider.ts +249 -104
- package/src/internal/hardhat-network/provider/utils/convertToEdr.ts +62 -27
|
@@ -5,7 +5,7 @@ import { EventEmitter } from "events";
|
|
|
5
5
|
import { ForkConfig, GenesisAccount, IntervalMiningConfig, MempoolOrder } from "./node-types";
|
|
6
6
|
import { LoggerConfig } from "./modules/logger";
|
|
7
7
|
export declare const DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
8
|
-
export declare function getGlobalEdrContext(): EdrContext
|
|
8
|
+
export declare function getGlobalEdrContext(): Promise<EdrContext>;
|
|
9
9
|
interface HardhatNetworkProviderConfig {
|
|
10
10
|
hardfork: string;
|
|
11
11
|
chainId: number;
|
|
@@ -30,13 +30,18 @@ interface HardhatNetworkProviderConfig {
|
|
|
30
30
|
enableRip7212: boolean;
|
|
31
31
|
}
|
|
32
32
|
export declare class EdrProviderWrapper extends EventEmitter implements EIP1193Provider {
|
|
33
|
-
private
|
|
34
|
-
private readonly
|
|
33
|
+
private _provider;
|
|
34
|
+
private readonly _providerConfig;
|
|
35
|
+
private readonly _loggerConfig;
|
|
36
|
+
private _node;
|
|
37
|
+
private readonly _subscriptionConfig;
|
|
35
38
|
private _failedStackTraces;
|
|
36
39
|
private _callOverrideCallback?;
|
|
37
40
|
private constructor();
|
|
38
41
|
static create(config: HardhatNetworkProviderConfig, loggerConfig: LoggerConfig, tracingConfig?: TracingConfigWithBuffers): Promise<EdrProviderWrapper>;
|
|
39
42
|
request(args: RequestArguments): Promise<unknown>;
|
|
43
|
+
private _addCompilationResult;
|
|
44
|
+
private _reset;
|
|
40
45
|
private _setCallOverrideCallback;
|
|
41
46
|
private _setVerboseTracing;
|
|
42
47
|
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,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,SAAS,EAGT,eAAe,EAEf,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,UAAU,EAKV,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAgCtC,OAAO,EACL,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,YAAY,EAA8B,MAAM,kBAAkB,CAAC;AAO5E,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAI7E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,CAAC,CAgB/D;AAED,UAAU,4BAA4B;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,oBAAoB,CAAC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,0BAA0B,CAAC;IACnC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,0BAA0B,EAAE,OAAO,CAAC;IACpC,0BAA0B,EAAE,OAAO,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,4BAA4B,EAAE,OAAO,CAAC;IAEtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,OAAO,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;CACxB;AAWD,qBAAa,kBACX,SAAQ,YACR,YAAW,eAAe;IAQxB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,KAAK;IAGb,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAbtC,OAAO,CAAC,kBAAkB,CAAK;IAG/B,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IAErD,OAAO;WAaa,MAAM,CACxB,MAAM,EAAE,4BAA4B,EACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,wBAAwB,GACvC,OAAO,CAAC,kBAAkB,CAAC;IAsKjB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YAiJhD,qBAAqB;YAerB,MAAM;YA2CN,wBAAwB;YAexB,kBAAkB;IAIhC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,6BAA6B;CAWtC;AAQD,wBAAsB,4BAA4B,CAChD,4BAA4B,EAAE,4BAA4B,EAC1D,YAAY,EAAE,YAAY,EAC1B,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,eAAe,CAAC,CAY1B"}
|
|
@@ -1,15 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.createHardhatNetworkProvider = exports.EdrProviderWrapper = exports.getGlobalEdrContext = exports.DEFAULT_COINBASE = void 0;
|
|
30
|
+
const util_1 = require("@ethereumjs/util");
|
|
31
|
+
const edr_1 = require("@nomicfoundation/edr");
|
|
7
32
|
const picocolors_1 = __importDefault(require("picocolors"));
|
|
8
33
|
const debug_1 = __importDefault(require("debug"));
|
|
9
34
|
const events_1 = require("events");
|
|
10
35
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
36
|
+
const t = __importStar(require("io-ts"));
|
|
11
37
|
const napi_rs_1 = require("../../../common/napi-rs");
|
|
12
38
|
const constants_1 = require("../../constants");
|
|
39
|
+
const base_types_1 = require("../../core/jsonrpc/types/base-types");
|
|
40
|
+
const hardhat_network_1 = require("../../core/jsonrpc/types/input/hardhat-network");
|
|
41
|
+
const solc_1 = require("../../core/jsonrpc/types/input/solc");
|
|
42
|
+
const validation_1 = require("../../core/jsonrpc/types/input/validation");
|
|
13
43
|
const errors_1 = require("../../core/providers/errors");
|
|
14
44
|
const http_1 = require("../../core/providers/http");
|
|
15
45
|
const hardforks_1 = require("../../util/hardforks");
|
|
@@ -24,11 +54,12 @@ const log = (0, debug_1.default)("hardhat:core:hardhat-network:provider");
|
|
|
24
54
|
exports.DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
25
55
|
let _globalEdrContext;
|
|
26
56
|
// Lazy initialize the global EDR context.
|
|
27
|
-
function getGlobalEdrContext() {
|
|
28
|
-
const { EdrContext } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
57
|
+
async function getGlobalEdrContext() {
|
|
58
|
+
const { EdrContext, GENERIC_CHAIN_TYPE, genericChainProviderFactory } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
29
59
|
if (_globalEdrContext === undefined) {
|
|
30
60
|
// Only one is allowed to exist
|
|
31
61
|
_globalEdrContext = new EdrContext();
|
|
62
|
+
await _globalEdrContext.registerProviderFactory(GENERIC_CHAIN_TYPE, genericChainProviderFactory());
|
|
32
63
|
}
|
|
33
64
|
return _globalEdrContext;
|
|
34
65
|
}
|
|
@@ -36,35 +67,41 @@ exports.getGlobalEdrContext = getGlobalEdrContext;
|
|
|
36
67
|
class EdrProviderEventAdapter extends events_1.EventEmitter {
|
|
37
68
|
}
|
|
38
69
|
class EdrProviderWrapper extends events_1.EventEmitter {
|
|
39
|
-
constructor(_provider,
|
|
70
|
+
constructor(_provider, _providerConfig, _loggerConfig,
|
|
40
71
|
// we add this for backwards-compatibility with plugins like solidity-coverage
|
|
41
|
-
_node) {
|
|
72
|
+
_node, _subscriptionConfig) {
|
|
42
73
|
super();
|
|
43
74
|
this._provider = _provider;
|
|
75
|
+
this._providerConfig = _providerConfig;
|
|
76
|
+
this._loggerConfig = _loggerConfig;
|
|
44
77
|
this._node = _node;
|
|
78
|
+
this._subscriptionConfig = _subscriptionConfig;
|
|
45
79
|
this._failedStackTraces = 0;
|
|
46
80
|
}
|
|
47
81
|
static async create(config, loggerConfig, tracingConfig) {
|
|
48
|
-
const {
|
|
82
|
+
const { GENERIC_CHAIN_TYPE, l1GenesisState, l1HardforkFromString } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
49
83
|
const coinbase = config.coinbase ?? exports.DEFAULT_COINBASE;
|
|
50
84
|
let fork;
|
|
51
85
|
if (config.forkConfig !== undefined) {
|
|
52
|
-
let httpHeaders;
|
|
53
|
-
if (config.forkConfig.httpHeaders !== undefined) {
|
|
54
|
-
httpHeaders = [];
|
|
55
|
-
for (const [name, value] of Object.entries(config.forkConfig.httpHeaders)) {
|
|
56
|
-
httpHeaders.push({
|
|
57
|
-
name,
|
|
58
|
-
value,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
86
|
fork = {
|
|
63
|
-
jsonRpcUrl: config.forkConfig.jsonRpcUrl,
|
|
64
87
|
blockNumber: config.forkConfig.blockNumber !== undefined
|
|
65
88
|
? BigInt(config.forkConfig.blockNumber)
|
|
66
89
|
: undefined,
|
|
67
|
-
|
|
90
|
+
cacheDir: config.forkCachePath,
|
|
91
|
+
chainOverrides: Array.from(config.chains, ([chainId, hardforkConfig]) => {
|
|
92
|
+
return {
|
|
93
|
+
chainId: BigInt(chainId),
|
|
94
|
+
name: "Unknown",
|
|
95
|
+
hardforks: Array.from(hardforkConfig.hardforkHistory, ([hardfork, blockNumber]) => {
|
|
96
|
+
return {
|
|
97
|
+
condition: { blockNumber: BigInt(blockNumber) },
|
|
98
|
+
hardfork: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)((0, hardforks_1.getHardforkName)(hardfork)),
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
101
|
+
};
|
|
102
|
+
}),
|
|
103
|
+
httpHeaders: (0, convertToEdr_1.httpHeadersToEdr)(config.forkConfig.httpHeaders),
|
|
104
|
+
url: config.forkConfig.jsonRpcUrl,
|
|
68
105
|
};
|
|
69
106
|
}
|
|
70
107
|
const initialDate = config.initialDate !== undefined
|
|
@@ -76,35 +113,32 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
76
113
|
const printLineFn = loggerConfig.printLineFn ?? logger_1.printLine;
|
|
77
114
|
const replaceLastLineFn = loggerConfig.replaceLastLineFn ?? logger_1.replaceLastLine;
|
|
78
115
|
const hardforkName = (0, hardforks_1.getHardforkName)(config.hardfork);
|
|
79
|
-
const
|
|
116
|
+
const genesisState = fork !== undefined
|
|
117
|
+
? [] // TODO: Add support for overriding remote fork state when the local fork is different
|
|
118
|
+
: l1GenesisState(l1HardforkFromString((0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)(hardforkName)));
|
|
119
|
+
const ownedAccounts = config.genesisAccounts.map((account) => {
|
|
120
|
+
const privateKey = Uint8Array.from(
|
|
121
|
+
// Strip the `0x` prefix
|
|
122
|
+
Buffer.from(account.privateKey.slice(2), "hex"));
|
|
123
|
+
genesisState.push({
|
|
124
|
+
address: (0, util_1.privateToAddress)(privateKey),
|
|
125
|
+
balance: BigInt(account.balance),
|
|
126
|
+
code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
|
|
127
|
+
});
|
|
128
|
+
return account.privateKey;
|
|
129
|
+
});
|
|
130
|
+
const edrProviderConfig = {
|
|
80
131
|
allowBlocksWithSameTimestamp: config.allowBlocksWithSameTimestamp ?? false,
|
|
81
132
|
allowUnlimitedContractSize: config.allowUnlimitedContractSize,
|
|
82
133
|
bailOnCallFailure: config.throwOnCallFailures,
|
|
83
134
|
bailOnTransactionFailure: config.throwOnTransactionFailures,
|
|
84
135
|
blockGasLimit: BigInt(config.blockGasLimit),
|
|
85
136
|
chainId: BigInt(config.chainId),
|
|
86
|
-
chains: Array.from(config.chains, ([chainId, hardforkConfig]) => {
|
|
87
|
-
return {
|
|
88
|
-
chainId: BigInt(chainId),
|
|
89
|
-
hardforks: Array.from(hardforkConfig.hardforkHistory, ([hardfork, blockNumber]) => {
|
|
90
|
-
return {
|
|
91
|
-
blockNumber: BigInt(blockNumber),
|
|
92
|
-
specId: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)((0, hardforks_1.getHardforkName)(hardfork)),
|
|
93
|
-
};
|
|
94
|
-
}),
|
|
95
|
-
};
|
|
96
|
-
}),
|
|
97
|
-
cacheDir: config.forkCachePath,
|
|
98
137
|
coinbase: Buffer.from(coinbase.slice(2), "hex"),
|
|
99
|
-
|
|
138
|
+
precompileOverrides: config.enableRip7212 ? [(0, edr_1.precompileP256Verify)()] : [],
|
|
100
139
|
fork,
|
|
140
|
+
genesisState,
|
|
101
141
|
hardfork: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)(hardforkName),
|
|
102
|
-
genesisAccounts: config.genesisAccounts.map((account) => {
|
|
103
|
-
return {
|
|
104
|
-
secretKey: account.privateKey,
|
|
105
|
-
balance: BigInt(account.balance),
|
|
106
|
-
};
|
|
107
|
-
}),
|
|
108
142
|
initialDate,
|
|
109
143
|
initialBaseFeePerGas: config.initialBaseFeePerGas !== undefined
|
|
110
144
|
? BigInt(config.initialBaseFeePerGas)
|
|
@@ -118,9 +152,16 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
118
152
|
},
|
|
119
153
|
},
|
|
120
154
|
networkId: BigInt(config.networkId),
|
|
121
|
-
|
|
155
|
+
observability: {},
|
|
156
|
+
ownedAccounts,
|
|
157
|
+
};
|
|
158
|
+
const edrLoggerConfig = {
|
|
122
159
|
enable: loggerConfig.enabled,
|
|
123
|
-
decodeConsoleLogInputsCallback:
|
|
160
|
+
decodeConsoleLogInputsCallback: (inputs) => {
|
|
161
|
+
return consoleLogger_1.ConsoleLogger.getDecodedLogs(inputs.map((input) => {
|
|
162
|
+
return Buffer.from(input);
|
|
163
|
+
}));
|
|
164
|
+
},
|
|
124
165
|
printLineCallback: (message, replace) => {
|
|
125
166
|
if (replace) {
|
|
126
167
|
replaceLastLineFn(message);
|
|
@@ -129,13 +170,20 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
129
170
|
printLineFn(message);
|
|
130
171
|
}
|
|
131
172
|
},
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
|
|
173
|
+
};
|
|
174
|
+
const edrSubscriptionConfig = {
|
|
175
|
+
subscriptionCallback: (event) => {
|
|
176
|
+
eventAdapter.emit("ethEvent", event);
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
const edrTracingConfig = tracingConfig ?? {};
|
|
180
|
+
const contractDecoder = edr_1.ContractDecoder.withContracts(edrTracingConfig);
|
|
181
|
+
const context = await getGlobalEdrContext();
|
|
182
|
+
const provider = await context.createProvider(GENERIC_CHAIN_TYPE, edrProviderConfig, edrLoggerConfig, edrSubscriptionConfig, contractDecoder);
|
|
135
183
|
const minimalEthereumJsNode = {
|
|
136
184
|
_vm: (0, minimal_vm_1.getMinimalEthereumJsVm)(provider),
|
|
137
185
|
};
|
|
138
|
-
const wrapper = new EdrProviderWrapper(provider, minimalEthereumJsNode);
|
|
186
|
+
const wrapper = new EdrProviderWrapper(provider, edrProviderConfig, edrLoggerConfig, minimalEthereumJsNode, edrSubscriptionConfig);
|
|
139
187
|
// Pass through all events from the provider
|
|
140
188
|
eventAdapter.addListener("ethEvent", wrapper._ethEventListener.bind(wrapper));
|
|
141
189
|
return wrapper;
|
|
@@ -145,9 +193,20 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
145
193
|
throw new errors_1.InvalidInputError("Hardhat Network doesn't support JSON-RPC params sent as an object");
|
|
146
194
|
}
|
|
147
195
|
const params = args.params ?? [];
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
196
|
+
// stubbed for backwards compatibility
|
|
197
|
+
switch (args.method) {
|
|
198
|
+
case "hardhat_getStackTraceFailuresCount":
|
|
199
|
+
return 0;
|
|
200
|
+
case "eth_mining":
|
|
201
|
+
return false;
|
|
202
|
+
case "net_listening":
|
|
203
|
+
return true;
|
|
204
|
+
case "net_peerCount":
|
|
205
|
+
return (0, base_types_1.numberToRpcQuantity)(0);
|
|
206
|
+
case "hardhat_reset":
|
|
207
|
+
return this._reset(..._resetParams(params));
|
|
208
|
+
case "hardhat_addCompilationResult":
|
|
209
|
+
return this._addCompilationResult(..._addCompilationResultParams(params));
|
|
151
210
|
}
|
|
152
211
|
const stringifiedArgs = JSON.stringify({
|
|
153
212
|
method: args.method,
|
|
@@ -167,7 +226,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
167
226
|
const rawTraces = responseObject.traces;
|
|
168
227
|
for (const rawTrace of rawTraces) {
|
|
169
228
|
// For other consumers in JS we need to marshall the entire trace over FFI
|
|
170
|
-
const trace = rawTrace.trace
|
|
229
|
+
const trace = rawTrace.trace;
|
|
171
230
|
// beforeTx event
|
|
172
231
|
if (this._node._vm.events.listenerCount("beforeTx") > 0) {
|
|
173
232
|
this._node._vm.events.emit("beforeTx");
|
|
@@ -226,10 +285,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
226
285
|
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
227
286
|
throw error;
|
|
228
287
|
}
|
|
229
|
-
if (args.method === "
|
|
230
|
-
this.emit(constants_1.HARDHAT_NETWORK_RESET_EVENT);
|
|
231
|
-
}
|
|
232
|
-
else if (args.method === "evm_revert") {
|
|
288
|
+
if (args.method === "evm_revert") {
|
|
233
289
|
this.emit(constants_1.HARDHAT_NETWORK_REVERT_SNAPSHOT_EVENT);
|
|
234
290
|
}
|
|
235
291
|
// Override EDR version string with Hardhat version string with EDR backend,
|
|
@@ -245,15 +301,52 @@ class EdrProviderWrapper extends events_1.EventEmitter {
|
|
|
245
301
|
return response.result;
|
|
246
302
|
}
|
|
247
303
|
}
|
|
304
|
+
async _addCompilationResult(solcVersion, input, output) {
|
|
305
|
+
try {
|
|
306
|
+
await this._provider.addCompilationResult(solcVersion, input, output);
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
311
|
+
throw new errors_1.InternalError(error);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
async _reset(networkConfig) {
|
|
315
|
+
const { GENERIC_CHAIN_TYPE } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
316
|
+
const forkConfig = networkConfig?.forking;
|
|
317
|
+
if (forkConfig !== undefined) {
|
|
318
|
+
this._providerConfig.fork = {
|
|
319
|
+
blockNumber: forkConfig.blockNumber !== undefined
|
|
320
|
+
? BigInt(forkConfig.blockNumber)
|
|
321
|
+
: undefined,
|
|
322
|
+
cacheDir: this._providerConfig.fork?.cacheDir,
|
|
323
|
+
chainOverrides: this._providerConfig.fork?.chainOverrides,
|
|
324
|
+
httpHeaders: (0, convertToEdr_1.httpHeadersToEdr)(forkConfig.httpHeaders),
|
|
325
|
+
url: forkConfig.jsonRpcUrl,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
this._providerConfig.fork = undefined;
|
|
330
|
+
}
|
|
331
|
+
const context = await getGlobalEdrContext();
|
|
332
|
+
const provider = await context.createProvider(GENERIC_CHAIN_TYPE, this._providerConfig, this._loggerConfig, this._subscriptionConfig, this._provider.contractDecoder());
|
|
333
|
+
const minimalEthereumJsNode = {
|
|
334
|
+
_vm: (0, minimal_vm_1.getMinimalEthereumJsVm)(provider),
|
|
335
|
+
};
|
|
336
|
+
this._provider = provider;
|
|
337
|
+
this._node = minimalEthereumJsNode;
|
|
338
|
+
this.emit(constants_1.HARDHAT_NETWORK_RESET_EVENT);
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
248
341
|
// temporarily added to make smock work with HH+EDR
|
|
249
|
-
_setCallOverrideCallback(callback) {
|
|
342
|
+
async _setCallOverrideCallback(callback) {
|
|
250
343
|
this._callOverrideCallback = callback;
|
|
251
|
-
this._provider.setCallOverrideCallback(async (address, data) => {
|
|
252
|
-
return this._callOverrideCallback?.(address, data);
|
|
344
|
+
await this._provider.setCallOverrideCallback(async (address, data) => {
|
|
345
|
+
return this._callOverrideCallback?.(Buffer.from(address), Buffer.from(data));
|
|
253
346
|
});
|
|
254
347
|
}
|
|
255
|
-
_setVerboseTracing(enabled) {
|
|
256
|
-
this._provider.setVerboseTracing(enabled);
|
|
348
|
+
async _setVerboseTracing(enabled) {
|
|
349
|
+
await this._provider.setVerboseTracing(enabled);
|
|
257
350
|
}
|
|
258
351
|
_ethEventListener(event) {
|
|
259
352
|
const subscription = `0x${event.filterId.toString(16)}`;
|
|
@@ -310,4 +403,10 @@ async function makeTracingConfig(artifacts) {
|
|
|
310
403
|
}
|
|
311
404
|
}
|
|
312
405
|
}
|
|
406
|
+
function _addCompilationResultParams(params) {
|
|
407
|
+
return (0, validation_1.validateParams)(params, t.string, solc_1.rpcCompilerInput, solc_1.rpcCompilerOutput);
|
|
408
|
+
}
|
|
409
|
+
function _resetParams(params) {
|
|
410
|
+
return (0, validation_1.validateParams)(params, hardhat_network_1.optionalRpcHardhatNetworkConfig);
|
|
411
|
+
}
|
|
313
412
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":";;;;;;AAgBA,4DAAoC;AACpC,kDAA0B;AAC1B,mCAAsC;AACtC,wDAA+B;AAE/B,qDAA8D;AAC9D,+CAGyB;AACzB,wDAIqC;AACrC,oDAA4D;AAC5D,oDAAuD;AACvD,iEAA8D;AAC9D,qEAA2E;AAG3E,wDAAwD;AAOxD,uDAQ8B;AAC9B,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,MAAM,uBAAwB,SAAQ,qBAAY;CAAG;AASrD,MAAa,kBACX,SAAQ,qBAAY;IAQpB,YACmB,SAAuB;IACxC,8EAA8E;IAC7D,KAEhB;QAED,KAAK,EAAE,CAAC;QANS,cAAS,GAAT,SAAS,CAAc;QAEvB,UAAK,GAAL,KAAK,CAErB;QAVK,uBAAkB,GAAG,CAAC,CAAC;IAa/B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,MAAoC,EACpC,YAA0B,EAC1B,aAAwC;QAExC,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,WAAqC,CAAC;YAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE;gBAC/C,WAAW,GAAG,EAAE,CAAC;gBAEjB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACxC,MAAM,CAAC,UAAU,CAAC,WAAW,CAC9B,EAAE;oBACD,WAAW,CAAC,IAAI,CAAC;wBACf,IAAI;wBACJ,KAAK;qBACN,CAAC,CAAC;iBACJ;aACF;YAED,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;gBACf,WAAW;aACZ,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,6EAA6E;QAC7E,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,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,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,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,6BAAa,CAAC,cAAc;YAC5D,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,aAAa,IAAI,EAAE,EACnB,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,OAAO,GAAG,IAAI,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAExE,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,oCAAoC,EAAE;YACxD,sCAAsC;YACtC,OAAO,CAAC,CAAC;SACV;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;QAEF,IAAI,QAAQ,CAAC;QACb,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3C,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC5C;aAAM;YACL,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC;SAChC;QAED,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,CAAC;QAEhD,IAAI,WAAW,EAAE;YACf,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC;YACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,0EAA0E;gBAC1E,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;qBACF;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;qBACF;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;qBACF;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,IAAI,UAAU,GAA8B,IAAI,CAAC;YACjD,IAAI;gBACF,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC;aAC1C;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;aACzC;YAED,IAAI,UAAU,KAAK,IAAI,EAAE;gBACvB,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,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;CACF;AA1UD,gDA0UC;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,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7B,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzD,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAC9C,4BAA4B,EAC5B,YAAY,EACZ,aAAa,CACd,CAAC;IACF,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAE5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAhBD,oEAgBC;AAED,KAAK,UAAU,iBAAiB,CAC9B,SAAgC;IAEhC,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAE3D,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC7D,CAAC;YAEF,OAAO;gBACL,UAAU;aACX,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,IAAI,CACV,oBAAU,CAAC,MAAM,CACf,yFAAyF,CAC1F,CACF,CAAC;YAEF,GAAG,CACD,gIAAgI,EAChI,KAAK,CACN,CAAC;SACH;KACF;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/provider/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { SpecId, MineOrdering, IntervalRange, DebugTraceResult, TracingMessage, TracingMessageResult, TracingStep } from "@nomicfoundation/edr";
|
|
1
|
+
import type { SpecId, MineOrdering, IntervalRange, DebugTraceResult, TracingMessage, TracingMessageResult, TracingStep, HttpHeader } from "@nomicfoundation/edr";
|
|
2
2
|
import { HardforkName } from "../../../util/hardforks";
|
|
3
3
|
import { IntervalMiningConfig, MempoolOrder } from "../node-types";
|
|
4
4
|
import { RpcDebugTraceOutput } from "../output";
|
|
5
5
|
import { MinimalEVMResult, MinimalInterpreterStep, MinimalMessage } from "../vm/types";
|
|
6
|
-
export declare function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName):
|
|
6
|
+
export declare function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName): string;
|
|
7
7
|
export declare function edrSpecIdToEthereumHardfork(specId: SpecId): HardforkName;
|
|
8
8
|
export declare function ethereumjsIntervalMiningConfigToEdr(config: IntervalMiningConfig): bigint | IntervalRange | undefined;
|
|
9
9
|
export declare function ethereumjsMempoolOrderToEdrMineOrdering(mempoolOrder: MempoolOrder): MineOrdering;
|
|
@@ -11,4 +11,7 @@ export declare function edrRpcDebugTraceToHardhat(rpcDebugTrace: DebugTraceResul
|
|
|
11
11
|
export declare function edrTracingStepToMinimalInterpreterStep(step: TracingStep): MinimalInterpreterStep;
|
|
12
12
|
export declare function edrTracingMessageResultToMinimalEVMResult(tracingMessageResult: TracingMessageResult): MinimalEVMResult;
|
|
13
13
|
export declare function edrTracingMessageToMinimalMessage(message: TracingMessage): MinimalMessage;
|
|
14
|
+
export declare function httpHeadersToEdr(input?: {
|
|
15
|
+
[name: string]: string;
|
|
16
|
+
}): HttpHeader[] | undefined;
|
|
14
17
|
//# sourceMappingURL=convertToEdr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertToEdr.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToEdr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,WAAW,
|
|
1
|
+
{"version":3,"file":"convertToEdr.d.ts","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToEdr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,UAAU,EACX,MAAM,sBAAsB,CAAC;AAwB9B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAgB,MAAM,WAAW,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CA4C7E;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA8CxE;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,aAAa,GAAG,SAAS,CAcpC;AAED,wBAAgB,uCAAuC,CACrD,YAAY,EAAE,YAAY,GACzB,YAAY,CAWd;AAED,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,gBAAgB,GAC9B,mBAAmB,CAoDrB;AAED,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,WAAW,GAChB,sBAAsB,CAexB;AAED,wBAAgB,yCAAyC,CACvD,oBAAoB,EAAE,oBAAoB,GACzC,gBAAgB,CA+BlB;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,cAAc,GACtB,cAAc,CAahB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,GAAG,UAAU,EAAE,GAAG,SAAS,CAc3B"}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.edrTracingMessageToMinimalMessage = exports.edrTracingMessageResultToMinimalEVMResult = exports.edrTracingStepToMinimalInterpreterStep = exports.edrRpcDebugTraceToHardhat = exports.ethereumjsMempoolOrderToEdrMineOrdering = exports.ethereumjsIntervalMiningConfigToEdr = exports.edrSpecIdToEthereumHardfork = exports.ethereumsjsHardforkToEdrSpecId = void 0;
|
|
3
|
+
exports.httpHeadersToEdr = exports.edrTracingMessageToMinimalMessage = exports.edrTracingMessageResultToMinimalEVMResult = exports.edrTracingStepToMinimalInterpreterStep = exports.edrRpcDebugTraceToHardhat = exports.ethereumjsMempoolOrderToEdrMineOrdering = exports.ethereumjsIntervalMiningConfigToEdr = exports.edrSpecIdToEthereumHardfork = exports.ethereumsjsHardforkToEdrSpecId = void 0;
|
|
4
|
+
const edr_1 = require("@nomicfoundation/edr");
|
|
4
5
|
const util_1 = require("@ethereumjs/util");
|
|
5
6
|
const napi_rs_1 = require("../../../../common/napi-rs");
|
|
6
7
|
const hardforks_1 = require("../../../util/hardforks");
|
|
7
8
|
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
8
9
|
function ethereumsjsHardforkToEdrSpecId(hardfork) {
|
|
9
|
-
const { SpecId } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
10
10
|
switch (hardfork) {
|
|
11
11
|
case hardforks_1.HardforkName.FRONTIER:
|
|
12
|
-
return
|
|
12
|
+
return edr_1.FRONTIER;
|
|
13
13
|
case hardforks_1.HardforkName.HOMESTEAD:
|
|
14
|
-
return
|
|
14
|
+
return edr_1.HOMESTEAD;
|
|
15
15
|
case hardforks_1.HardforkName.DAO:
|
|
16
|
-
return
|
|
16
|
+
return edr_1.DAO_FORK;
|
|
17
17
|
case hardforks_1.HardforkName.TANGERINE_WHISTLE:
|
|
18
|
-
return
|
|
18
|
+
return edr_1.TANGERINE;
|
|
19
19
|
case hardforks_1.HardforkName.SPURIOUS_DRAGON:
|
|
20
|
-
return
|
|
20
|
+
return edr_1.SPURIOUS_DRAGON;
|
|
21
21
|
case hardforks_1.HardforkName.BYZANTIUM:
|
|
22
|
-
return
|
|
22
|
+
return edr_1.BYZANTIUM;
|
|
23
23
|
case hardforks_1.HardforkName.CONSTANTINOPLE:
|
|
24
|
-
return
|
|
24
|
+
return edr_1.CONSTANTINOPLE;
|
|
25
25
|
case hardforks_1.HardforkName.PETERSBURG:
|
|
26
|
-
return
|
|
26
|
+
return edr_1.PETERSBURG;
|
|
27
27
|
case hardforks_1.HardforkName.ISTANBUL:
|
|
28
|
-
return
|
|
28
|
+
return edr_1.ISTANBUL;
|
|
29
29
|
case hardforks_1.HardforkName.MUIR_GLACIER:
|
|
30
|
-
return
|
|
30
|
+
return edr_1.MUIR_GLACIER;
|
|
31
31
|
case hardforks_1.HardforkName.BERLIN:
|
|
32
|
-
return
|
|
32
|
+
return edr_1.BERLIN;
|
|
33
33
|
case hardforks_1.HardforkName.LONDON:
|
|
34
|
-
return
|
|
34
|
+
return edr_1.LONDON;
|
|
35
35
|
case hardforks_1.HardforkName.ARROW_GLACIER:
|
|
36
|
-
return
|
|
36
|
+
return edr_1.ARROW_GLACIER;
|
|
37
37
|
case hardforks_1.HardforkName.GRAY_GLACIER:
|
|
38
|
-
return
|
|
38
|
+
return edr_1.GRAY_GLACIER;
|
|
39
39
|
case hardforks_1.HardforkName.MERGE:
|
|
40
|
-
return
|
|
40
|
+
return edr_1.MERGE;
|
|
41
41
|
case hardforks_1.HardforkName.SHANGHAI:
|
|
42
|
-
return
|
|
42
|
+
return edr_1.SHANGHAI;
|
|
43
43
|
case hardforks_1.HardforkName.CANCUN:
|
|
44
|
-
return
|
|
44
|
+
return edr_1.CANCUN;
|
|
45
45
|
case hardforks_1.HardforkName.PRAGUE:
|
|
46
|
-
return
|
|
46
|
+
return edr_1.PRAGUE;
|
|
47
47
|
default:
|
|
48
48
|
const _exhaustiveCheck = hardfork;
|
|
49
49
|
throw new Error(`Unknown hardfork name '${hardfork}', this shouldn't happen`);
|
|
@@ -154,7 +154,7 @@ function edrRpcDebugTraceToHardhat(rpcDebugTrace) {
|
|
|
154
154
|
if (structLogs.length > 0 && structLogs[0].op === "STOP") {
|
|
155
155
|
structLogs.shift();
|
|
156
156
|
}
|
|
157
|
-
let returnValue = rpcDebugTrace.output?.toString(
|
|
157
|
+
let returnValue = rpcDebugTrace.output?.toString() ?? "";
|
|
158
158
|
if (returnValue === "0x") {
|
|
159
159
|
returnValue = "";
|
|
160
160
|
}
|
|
@@ -197,11 +197,11 @@ function edrTracingMessageResultToMinimalEVMResult(tracingMessageResult) {
|
|
|
197
197
|
}
|
|
198
198
|
if ("output" in result) {
|
|
199
199
|
const { output } = result;
|
|
200
|
-
if (
|
|
201
|
-
minimalEVMResult.execResult.output = output;
|
|
200
|
+
if (output instanceof Uint8Array) {
|
|
201
|
+
minimalEVMResult.execResult.output = Buffer.from(output);
|
|
202
202
|
}
|
|
203
203
|
else {
|
|
204
|
-
minimalEVMResult.execResult.output = output.returnValue;
|
|
204
|
+
minimalEVMResult.execResult.output = Buffer.from(output.returnValue);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
if (contractAddress !== undefined) {
|
|
@@ -224,4 +224,18 @@ function edrTracingMessageToMinimalMessage(message) {
|
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
226
|
exports.edrTracingMessageToMinimalMessage = edrTracingMessageToMinimalMessage;
|
|
227
|
+
function httpHeadersToEdr(input) {
|
|
228
|
+
let httpHeaders;
|
|
229
|
+
if (input !== undefined) {
|
|
230
|
+
httpHeaders = [];
|
|
231
|
+
for (const [name, value] of Object.entries(input)) {
|
|
232
|
+
httpHeaders.push({
|
|
233
|
+
name,
|
|
234
|
+
value,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return httpHeaders;
|
|
239
|
+
}
|
|
240
|
+
exports.httpHeadersToEdr = httpHeadersToEdr;
|
|
227
241
|
//# sourceMappingURL=convertToEdr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertToEdr.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToEdr.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"convertToEdr.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/utils/convertToEdr.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"dependencies": {
|
|
87
87
|
"@ethereumjs/util": "^9.1.0",
|
|
88
88
|
"@ethersproject/abi": "^5.1.2",
|
|
89
|
-
"@nomicfoundation/edr": "^0.
|
|
89
|
+
"@nomicfoundation/edr": "^0.12.0-next.7",
|
|
90
90
|
"@nomicfoundation/solidity-analyzer": "^0.1.0",
|
|
91
91
|
"@sentry/node": "^5.18.1",
|
|
92
92
|
"adm-zip": "^0.4.16",
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Artifacts,
|
|
3
|
+
CompilerInput,
|
|
4
|
+
CompilerOutput,
|
|
3
5
|
EIP1193Provider,
|
|
4
6
|
EthSubscription,
|
|
5
7
|
HardhatNetworkChainsConfig,
|
|
@@ -8,23 +10,39 @@ import type {
|
|
|
8
10
|
|
|
9
11
|
import type {
|
|
10
12
|
EdrContext,
|
|
13
|
+
LoggerConfig as EdrLoggerConfig,
|
|
11
14
|
Provider as EdrProviderT,
|
|
12
15
|
Response,
|
|
13
16
|
SubscriptionEvent,
|
|
14
|
-
HttpHeader,
|
|
15
17
|
TracingConfigWithBuffers,
|
|
18
|
+
ProviderConfig,
|
|
19
|
+
SubscriptionConfig,
|
|
16
20
|
} from "@nomicfoundation/edr";
|
|
21
|
+
import { privateToAddress } from "@ethereumjs/util";
|
|
22
|
+
import { ContractDecoder, precompileP256Verify } from "@nomicfoundation/edr";
|
|
17
23
|
import picocolors from "picocolors";
|
|
18
24
|
import debug from "debug";
|
|
19
25
|
import { EventEmitter } from "events";
|
|
20
26
|
import fsExtra from "fs-extra";
|
|
27
|
+
import * as t from "io-ts";
|
|
21
28
|
|
|
22
29
|
import { requireNapiRsModule } from "../../../common/napi-rs";
|
|
23
30
|
import {
|
|
24
31
|
HARDHAT_NETWORK_RESET_EVENT,
|
|
25
32
|
HARDHAT_NETWORK_REVERT_SNAPSHOT_EVENT,
|
|
26
33
|
} from "../../constants";
|
|
34
|
+
import { numberToRpcQuantity } from "../../core/jsonrpc/types/base-types";
|
|
27
35
|
import {
|
|
36
|
+
optionalRpcHardhatNetworkConfig,
|
|
37
|
+
RpcHardhatNetworkConfig,
|
|
38
|
+
} from "../../core/jsonrpc/types/input/hardhat-network";
|
|
39
|
+
import {
|
|
40
|
+
rpcCompilerInput,
|
|
41
|
+
rpcCompilerOutput,
|
|
42
|
+
} from "../../core/jsonrpc/types/input/solc";
|
|
43
|
+
import { validateParams } from "../../core/jsonrpc/types/input/validation";
|
|
44
|
+
import {
|
|
45
|
+
InternalError,
|
|
28
46
|
InvalidArgumentsError,
|
|
29
47
|
InvalidInputError,
|
|
30
48
|
ProviderError,
|
|
@@ -50,6 +68,7 @@ import {
|
|
|
50
68
|
ethereumjsIntervalMiningConfigToEdr,
|
|
51
69
|
ethereumjsMempoolOrderToEdrMineOrdering,
|
|
52
70
|
ethereumsjsHardforkToEdrSpecId,
|
|
71
|
+
httpHeadersToEdr,
|
|
53
72
|
} from "./utils/convertToEdr";
|
|
54
73
|
import { LoggerConfig, printLine, replaceLastLine } from "./modules/logger";
|
|
55
74
|
import { MinimalEthereumJsVm, getMinimalEthereumJsVm } from "./vm/minimal-vm";
|
|
@@ -62,14 +81,19 @@ export const DEFAULT_COINBASE = "0xc014ba5ec014ba5ec014ba5ec014ba5ec014ba5e";
|
|
|
62
81
|
let _globalEdrContext: EdrContext | undefined;
|
|
63
82
|
|
|
64
83
|
// Lazy initialize the global EDR context.
|
|
65
|
-
export function getGlobalEdrContext(): EdrContext {
|
|
66
|
-
const { EdrContext } =
|
|
67
|
-
|
|
68
|
-
|
|
84
|
+
export async function getGlobalEdrContext(): Promise<EdrContext> {
|
|
85
|
+
const { EdrContext, GENERIC_CHAIN_TYPE, genericChainProviderFactory } =
|
|
86
|
+
requireNapiRsModule(
|
|
87
|
+
"@nomicfoundation/edr"
|
|
88
|
+
) as typeof import("@nomicfoundation/edr");
|
|
69
89
|
|
|
70
90
|
if (_globalEdrContext === undefined) {
|
|
71
91
|
// Only one is allowed to exist
|
|
72
92
|
_globalEdrContext = new EdrContext();
|
|
93
|
+
await _globalEdrContext.registerProviderFactory(
|
|
94
|
+
GENERIC_CHAIN_TYPE,
|
|
95
|
+
genericChainProviderFactory()
|
|
96
|
+
);
|
|
73
97
|
}
|
|
74
98
|
|
|
75
99
|
return _globalEdrContext;
|
|
@@ -119,11 +143,14 @@ export class EdrProviderWrapper
|
|
|
119
143
|
private _callOverrideCallback?: CallOverrideCallback;
|
|
120
144
|
|
|
121
145
|
private constructor(
|
|
122
|
-
private
|
|
146
|
+
private _provider: EdrProviderT,
|
|
147
|
+
private readonly _providerConfig: ProviderConfig,
|
|
148
|
+
private readonly _loggerConfig: EdrLoggerConfig,
|
|
123
149
|
// we add this for backwards-compatibility with plugins like solidity-coverage
|
|
124
|
-
private
|
|
150
|
+
private _node: {
|
|
125
151
|
_vm: MinimalEthereumJsVm;
|
|
126
|
-
}
|
|
152
|
+
},
|
|
153
|
+
private readonly _subscriptionConfig: SubscriptionConfig
|
|
127
154
|
) {
|
|
128
155
|
super();
|
|
129
156
|
}
|
|
@@ -133,35 +160,43 @@ export class EdrProviderWrapper
|
|
|
133
160
|
loggerConfig: LoggerConfig,
|
|
134
161
|
tracingConfig?: TracingConfigWithBuffers
|
|
135
162
|
): Promise<EdrProviderWrapper> {
|
|
136
|
-
const {
|
|
137
|
-
|
|
138
|
-
|
|
163
|
+
const { GENERIC_CHAIN_TYPE, l1GenesisState, l1HardforkFromString } =
|
|
164
|
+
requireNapiRsModule(
|
|
165
|
+
"@nomicfoundation/edr"
|
|
166
|
+
) as typeof import("@nomicfoundation/edr");
|
|
139
167
|
|
|
140
168
|
const coinbase = config.coinbase ?? DEFAULT_COINBASE;
|
|
141
169
|
|
|
142
170
|
let fork;
|
|
143
171
|
if (config.forkConfig !== undefined) {
|
|
144
|
-
let httpHeaders: HttpHeader[] | undefined;
|
|
145
|
-
if (config.forkConfig.httpHeaders !== undefined) {
|
|
146
|
-
httpHeaders = [];
|
|
147
|
-
|
|
148
|
-
for (const [name, value] of Object.entries(
|
|
149
|
-
config.forkConfig.httpHeaders
|
|
150
|
-
)) {
|
|
151
|
-
httpHeaders.push({
|
|
152
|
-
name,
|
|
153
|
-
value,
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
172
|
fork = {
|
|
159
|
-
jsonRpcUrl: config.forkConfig.jsonRpcUrl,
|
|
160
173
|
blockNumber:
|
|
161
174
|
config.forkConfig.blockNumber !== undefined
|
|
162
175
|
? BigInt(config.forkConfig.blockNumber)
|
|
163
176
|
: undefined,
|
|
164
|
-
|
|
177
|
+
cacheDir: config.forkCachePath,
|
|
178
|
+
chainOverrides: Array.from(
|
|
179
|
+
config.chains,
|
|
180
|
+
([chainId, hardforkConfig]) => {
|
|
181
|
+
return {
|
|
182
|
+
chainId: BigInt(chainId),
|
|
183
|
+
name: "Unknown",
|
|
184
|
+
hardforks: Array.from(
|
|
185
|
+
hardforkConfig.hardforkHistory,
|
|
186
|
+
([hardfork, blockNumber]) => {
|
|
187
|
+
return {
|
|
188
|
+
condition: { blockNumber: BigInt(blockNumber) },
|
|
189
|
+
hardfork: ethereumsjsHardforkToEdrSpecId(
|
|
190
|
+
getHardforkName(hardfork)
|
|
191
|
+
),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
),
|
|
198
|
+
httpHeaders: httpHeadersToEdr(config.forkConfig.httpHeaders),
|
|
199
|
+
url: config.forkConfig.jsonRpcUrl,
|
|
165
200
|
};
|
|
166
201
|
}
|
|
167
202
|
|
|
@@ -179,80 +214,107 @@ export class EdrProviderWrapper
|
|
|
179
214
|
|
|
180
215
|
const hardforkName = getHardforkName(config.hardfork);
|
|
181
216
|
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
memPool: {
|
|
229
|
-
order: ethereumjsMempoolOrderToEdrMineOrdering(config.mempoolOrder),
|
|
230
|
-
},
|
|
217
|
+
const genesisState =
|
|
218
|
+
fork !== undefined
|
|
219
|
+
? [] // TODO: Add support for overriding remote fork state when the local fork is different
|
|
220
|
+
: l1GenesisState(
|
|
221
|
+
l1HardforkFromString(ethereumsjsHardforkToEdrSpecId(hardforkName))
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
const ownedAccounts = config.genesisAccounts.map((account) => {
|
|
225
|
+
const privateKey = Uint8Array.from(
|
|
226
|
+
// Strip the `0x` prefix
|
|
227
|
+
Buffer.from(account.privateKey.slice(2), "hex")
|
|
228
|
+
);
|
|
229
|
+
|
|
230
|
+
genesisState.push({
|
|
231
|
+
address: privateToAddress(privateKey),
|
|
232
|
+
balance: BigInt(account.balance),
|
|
233
|
+
code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
return account.privateKey;
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
const edrProviderConfig = {
|
|
240
|
+
allowBlocksWithSameTimestamp:
|
|
241
|
+
config.allowBlocksWithSameTimestamp ?? false,
|
|
242
|
+
allowUnlimitedContractSize: config.allowUnlimitedContractSize,
|
|
243
|
+
bailOnCallFailure: config.throwOnCallFailures,
|
|
244
|
+
bailOnTransactionFailure: config.throwOnTransactionFailures,
|
|
245
|
+
blockGasLimit: BigInt(config.blockGasLimit),
|
|
246
|
+
chainId: BigInt(config.chainId),
|
|
247
|
+
coinbase: Buffer.from(coinbase.slice(2), "hex"),
|
|
248
|
+
precompileOverrides: config.enableRip7212 ? [precompileP256Verify()] : [],
|
|
249
|
+
fork,
|
|
250
|
+
genesisState,
|
|
251
|
+
hardfork: ethereumsjsHardforkToEdrSpecId(hardforkName),
|
|
252
|
+
initialDate,
|
|
253
|
+
initialBaseFeePerGas:
|
|
254
|
+
config.initialBaseFeePerGas !== undefined
|
|
255
|
+
? BigInt(config.initialBaseFeePerGas!)
|
|
256
|
+
: undefined,
|
|
257
|
+
minGasPrice: config.minGasPrice,
|
|
258
|
+
mining: {
|
|
259
|
+
autoMine: config.automine,
|
|
260
|
+
interval: ethereumjsIntervalMiningConfigToEdr(config.intervalMining),
|
|
261
|
+
memPool: {
|
|
262
|
+
order: ethereumjsMempoolOrderToEdrMineOrdering(config.mempoolOrder),
|
|
231
263
|
},
|
|
232
|
-
networkId: BigInt(config.networkId),
|
|
233
264
|
},
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
265
|
+
networkId: BigInt(config.networkId),
|
|
266
|
+
observability: {},
|
|
267
|
+
ownedAccounts,
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
const edrLoggerConfig = {
|
|
271
|
+
enable: loggerConfig.enabled,
|
|
272
|
+
decodeConsoleLogInputsCallback: (inputs: ArrayBuffer[]) => {
|
|
273
|
+
return ConsoleLogger.getDecodedLogs(
|
|
274
|
+
inputs.map((input) => {
|
|
275
|
+
return Buffer.from(input);
|
|
276
|
+
})
|
|
277
|
+
);
|
|
244
278
|
},
|
|
245
|
-
|
|
246
|
-
|
|
279
|
+
printLineCallback: (message: string, replace: boolean) => {
|
|
280
|
+
if (replace) {
|
|
281
|
+
replaceLastLineFn(message);
|
|
282
|
+
} else {
|
|
283
|
+
printLineFn(message);
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
const edrSubscriptionConfig = {
|
|
289
|
+
subscriptionCallback: (event: SubscriptionEvent) => {
|
|
247
290
|
eventAdapter.emit("ethEvent", event);
|
|
248
|
-
}
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
const edrTracingConfig = tracingConfig ?? {};
|
|
295
|
+
|
|
296
|
+
const contractDecoder = ContractDecoder.withContracts(edrTracingConfig);
|
|
297
|
+
|
|
298
|
+
const context = await getGlobalEdrContext();
|
|
299
|
+
const provider = await context.createProvider(
|
|
300
|
+
GENERIC_CHAIN_TYPE,
|
|
301
|
+
edrProviderConfig,
|
|
302
|
+
edrLoggerConfig,
|
|
303
|
+
edrSubscriptionConfig,
|
|
304
|
+
contractDecoder
|
|
249
305
|
);
|
|
250
306
|
|
|
251
307
|
const minimalEthereumJsNode = {
|
|
252
308
|
_vm: getMinimalEthereumJsVm(provider),
|
|
253
309
|
};
|
|
254
310
|
|
|
255
|
-
const wrapper = new EdrProviderWrapper(
|
|
311
|
+
const wrapper = new EdrProviderWrapper(
|
|
312
|
+
provider,
|
|
313
|
+
edrProviderConfig,
|
|
314
|
+
edrLoggerConfig,
|
|
315
|
+
minimalEthereumJsNode,
|
|
316
|
+
edrSubscriptionConfig
|
|
317
|
+
);
|
|
256
318
|
|
|
257
319
|
// Pass through all events from the provider
|
|
258
320
|
eventAdapter.addListener(
|
|
@@ -272,9 +334,22 @@ export class EdrProviderWrapper
|
|
|
272
334
|
|
|
273
335
|
const params = args.params ?? [];
|
|
274
336
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
337
|
+
// stubbed for backwards compatibility
|
|
338
|
+
switch (args.method) {
|
|
339
|
+
case "hardhat_getStackTraceFailuresCount":
|
|
340
|
+
return 0;
|
|
341
|
+
case "eth_mining":
|
|
342
|
+
return false;
|
|
343
|
+
case "net_listening":
|
|
344
|
+
return true;
|
|
345
|
+
case "net_peerCount":
|
|
346
|
+
return numberToRpcQuantity(0);
|
|
347
|
+
case "hardhat_reset":
|
|
348
|
+
return this._reset(..._resetParams(params));
|
|
349
|
+
case "hardhat_addCompilationResult":
|
|
350
|
+
return this._addCompilationResult(
|
|
351
|
+
..._addCompilationResultParams(params)
|
|
352
|
+
);
|
|
278
353
|
}
|
|
279
354
|
|
|
280
355
|
const stringifiedArgs = JSON.stringify({
|
|
@@ -301,7 +376,7 @@ export class EdrProviderWrapper
|
|
|
301
376
|
const rawTraces = responseObject.traces;
|
|
302
377
|
for (const rawTrace of rawTraces) {
|
|
303
378
|
// For other consumers in JS we need to marshall the entire trace over FFI
|
|
304
|
-
const trace = rawTrace.trace
|
|
379
|
+
const trace = rawTrace.trace;
|
|
305
380
|
|
|
306
381
|
// beforeTx event
|
|
307
382
|
if (this._node._vm.events.listenerCount("beforeTx") > 0) {
|
|
@@ -377,9 +452,7 @@ export class EdrProviderWrapper
|
|
|
377
452
|
throw error;
|
|
378
453
|
}
|
|
379
454
|
|
|
380
|
-
if (args.method === "
|
|
381
|
-
this.emit(HARDHAT_NETWORK_RESET_EVENT);
|
|
382
|
-
} else if (args.method === "evm_revert") {
|
|
455
|
+
if (args.method === "evm_revert") {
|
|
383
456
|
this.emit(HARDHAT_NETWORK_REVERT_SNAPSHOT_EVENT);
|
|
384
457
|
}
|
|
385
458
|
|
|
@@ -397,19 +470,81 @@ export class EdrProviderWrapper
|
|
|
397
470
|
}
|
|
398
471
|
}
|
|
399
472
|
|
|
473
|
+
private async _addCompilationResult(
|
|
474
|
+
solcVersion: string,
|
|
475
|
+
input: CompilerInput,
|
|
476
|
+
output: CompilerOutput
|
|
477
|
+
): Promise<boolean> {
|
|
478
|
+
try {
|
|
479
|
+
await this._provider.addCompilationResult(solcVersion, input, output);
|
|
480
|
+
|
|
481
|
+
return true;
|
|
482
|
+
} catch (error: any) {
|
|
483
|
+
// eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
|
|
484
|
+
throw new InternalError(error);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
private async _reset(networkConfig?: RpcHardhatNetworkConfig) {
|
|
489
|
+
const { GENERIC_CHAIN_TYPE } = requireNapiRsModule(
|
|
490
|
+
"@nomicfoundation/edr"
|
|
491
|
+
) as typeof import("@nomicfoundation/edr");
|
|
492
|
+
const forkConfig = networkConfig?.forking;
|
|
493
|
+
|
|
494
|
+
if (forkConfig !== undefined) {
|
|
495
|
+
this._providerConfig.fork = {
|
|
496
|
+
blockNumber:
|
|
497
|
+
forkConfig.blockNumber !== undefined
|
|
498
|
+
? BigInt(forkConfig.blockNumber)
|
|
499
|
+
: undefined,
|
|
500
|
+
cacheDir: this._providerConfig.fork?.cacheDir,
|
|
501
|
+
chainOverrides: this._providerConfig.fork?.chainOverrides,
|
|
502
|
+
httpHeaders: httpHeadersToEdr(forkConfig.httpHeaders),
|
|
503
|
+
url: forkConfig.jsonRpcUrl,
|
|
504
|
+
};
|
|
505
|
+
} else {
|
|
506
|
+
this._providerConfig.fork = undefined;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
const context = await getGlobalEdrContext();
|
|
510
|
+
const provider = await context.createProvider(
|
|
511
|
+
GENERIC_CHAIN_TYPE,
|
|
512
|
+
this._providerConfig,
|
|
513
|
+
this._loggerConfig,
|
|
514
|
+
this._subscriptionConfig,
|
|
515
|
+
this._provider.contractDecoder()
|
|
516
|
+
);
|
|
517
|
+
|
|
518
|
+
const minimalEthereumJsNode = {
|
|
519
|
+
_vm: getMinimalEthereumJsVm(provider),
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
this._provider = provider;
|
|
523
|
+
this._node = minimalEthereumJsNode;
|
|
524
|
+
|
|
525
|
+
this.emit(HARDHAT_NETWORK_RESET_EVENT);
|
|
526
|
+
|
|
527
|
+
return true;
|
|
528
|
+
}
|
|
529
|
+
|
|
400
530
|
// temporarily added to make smock work with HH+EDR
|
|
401
|
-
private _setCallOverrideCallback(
|
|
531
|
+
private async _setCallOverrideCallback(
|
|
532
|
+
callback: CallOverrideCallback
|
|
533
|
+
): Promise<void> {
|
|
402
534
|
this._callOverrideCallback = callback;
|
|
403
535
|
|
|
404
|
-
this._provider.setCallOverrideCallback(
|
|
405
|
-
async (address:
|
|
406
|
-
return this._callOverrideCallback?.(
|
|
536
|
+
await this._provider.setCallOverrideCallback(
|
|
537
|
+
async (address: ArrayBuffer, data: ArrayBuffer) => {
|
|
538
|
+
return this._callOverrideCallback?.(
|
|
539
|
+
Buffer.from(address),
|
|
540
|
+
Buffer.from(data)
|
|
541
|
+
);
|
|
407
542
|
}
|
|
408
543
|
);
|
|
409
544
|
}
|
|
410
545
|
|
|
411
|
-
private _setVerboseTracing(enabled: boolean) {
|
|
412
|
-
this._provider.setVerboseTracing(enabled);
|
|
546
|
+
private async _setVerboseTracing(enabled: boolean): Promise<void> {
|
|
547
|
+
await this._provider.setVerboseTracing(enabled);
|
|
413
548
|
}
|
|
414
549
|
|
|
415
550
|
private _ethEventListener(event: SubscriptionEvent) {
|
|
@@ -493,3 +628,13 @@ async function makeTracingConfig(
|
|
|
493
628
|
}
|
|
494
629
|
}
|
|
495
630
|
}
|
|
631
|
+
|
|
632
|
+
function _addCompilationResultParams(
|
|
633
|
+
params: any[]
|
|
634
|
+
): [string, CompilerInput, CompilerOutput] {
|
|
635
|
+
return validateParams(params, t.string, rpcCompilerInput, rpcCompilerOutput);
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
function _resetParams(params: any[]): [RpcHardhatNetworkConfig | undefined] {
|
|
639
|
+
return validateParams(params, optionalRpcHardhatNetworkConfig);
|
|
640
|
+
}
|
|
@@ -6,6 +6,27 @@ import type {
|
|
|
6
6
|
TracingMessage,
|
|
7
7
|
TracingMessageResult,
|
|
8
8
|
TracingStep,
|
|
9
|
+
HttpHeader,
|
|
10
|
+
} from "@nomicfoundation/edr";
|
|
11
|
+
import {
|
|
12
|
+
FRONTIER,
|
|
13
|
+
HOMESTEAD,
|
|
14
|
+
DAO_FORK,
|
|
15
|
+
TANGERINE,
|
|
16
|
+
SPURIOUS_DRAGON,
|
|
17
|
+
BYZANTIUM,
|
|
18
|
+
CONSTANTINOPLE,
|
|
19
|
+
PETERSBURG,
|
|
20
|
+
ISTANBUL,
|
|
21
|
+
MUIR_GLACIER,
|
|
22
|
+
BERLIN,
|
|
23
|
+
LONDON,
|
|
24
|
+
ARROW_GLACIER,
|
|
25
|
+
GRAY_GLACIER,
|
|
26
|
+
MERGE,
|
|
27
|
+
SHANGHAI,
|
|
28
|
+
CANCUN,
|
|
29
|
+
PRAGUE,
|
|
9
30
|
} from "@nomicfoundation/edr";
|
|
10
31
|
import { Address } from "@ethereumjs/util";
|
|
11
32
|
|
|
@@ -21,48 +42,44 @@ import {
|
|
|
21
42
|
|
|
22
43
|
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
23
44
|
|
|
24
|
-
export function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName):
|
|
25
|
-
const { SpecId } = requireNapiRsModule(
|
|
26
|
-
"@nomicfoundation/edr"
|
|
27
|
-
) as typeof import("@nomicfoundation/edr");
|
|
28
|
-
|
|
45
|
+
export function ethereumsjsHardforkToEdrSpecId(hardfork: HardforkName): string {
|
|
29
46
|
switch (hardfork) {
|
|
30
47
|
case HardforkName.FRONTIER:
|
|
31
|
-
return
|
|
48
|
+
return FRONTIER;
|
|
32
49
|
case HardforkName.HOMESTEAD:
|
|
33
|
-
return
|
|
50
|
+
return HOMESTEAD;
|
|
34
51
|
case HardforkName.DAO:
|
|
35
|
-
return
|
|
52
|
+
return DAO_FORK;
|
|
36
53
|
case HardforkName.TANGERINE_WHISTLE:
|
|
37
|
-
return
|
|
54
|
+
return TANGERINE;
|
|
38
55
|
case HardforkName.SPURIOUS_DRAGON:
|
|
39
|
-
return
|
|
56
|
+
return SPURIOUS_DRAGON;
|
|
40
57
|
case HardforkName.BYZANTIUM:
|
|
41
|
-
return
|
|
58
|
+
return BYZANTIUM;
|
|
42
59
|
case HardforkName.CONSTANTINOPLE:
|
|
43
|
-
return
|
|
60
|
+
return CONSTANTINOPLE;
|
|
44
61
|
case HardforkName.PETERSBURG:
|
|
45
|
-
return
|
|
62
|
+
return PETERSBURG;
|
|
46
63
|
case HardforkName.ISTANBUL:
|
|
47
|
-
return
|
|
64
|
+
return ISTANBUL;
|
|
48
65
|
case HardforkName.MUIR_GLACIER:
|
|
49
|
-
return
|
|
66
|
+
return MUIR_GLACIER;
|
|
50
67
|
case HardforkName.BERLIN:
|
|
51
|
-
return
|
|
68
|
+
return BERLIN;
|
|
52
69
|
case HardforkName.LONDON:
|
|
53
|
-
return
|
|
70
|
+
return LONDON;
|
|
54
71
|
case HardforkName.ARROW_GLACIER:
|
|
55
|
-
return
|
|
72
|
+
return ARROW_GLACIER;
|
|
56
73
|
case HardforkName.GRAY_GLACIER:
|
|
57
|
-
return
|
|
74
|
+
return GRAY_GLACIER;
|
|
58
75
|
case HardforkName.MERGE:
|
|
59
|
-
return
|
|
76
|
+
return MERGE;
|
|
60
77
|
case HardforkName.SHANGHAI:
|
|
61
|
-
return
|
|
78
|
+
return SHANGHAI;
|
|
62
79
|
case HardforkName.CANCUN:
|
|
63
|
-
return
|
|
80
|
+
return CANCUN;
|
|
64
81
|
case HardforkName.PRAGUE:
|
|
65
|
-
return
|
|
82
|
+
return PRAGUE;
|
|
66
83
|
default:
|
|
67
84
|
const _exhaustiveCheck: never = hardfork;
|
|
68
85
|
throw new Error(
|
|
@@ -195,7 +212,7 @@ export function edrRpcDebugTraceToHardhat(
|
|
|
195
212
|
structLogs.shift();
|
|
196
213
|
}
|
|
197
214
|
|
|
198
|
-
let returnValue = rpcDebugTrace.output?.toString(
|
|
215
|
+
let returnValue = rpcDebugTrace.output?.toString() ?? "";
|
|
199
216
|
if (returnValue === "0x") {
|
|
200
217
|
returnValue = "";
|
|
201
218
|
}
|
|
@@ -248,10 +265,10 @@ export function edrTracingMessageResultToMinimalEVMResult(
|
|
|
248
265
|
}
|
|
249
266
|
if ("output" in result) {
|
|
250
267
|
const { output } = result;
|
|
251
|
-
if (
|
|
252
|
-
minimalEVMResult.execResult.output = output;
|
|
268
|
+
if (output instanceof Uint8Array) {
|
|
269
|
+
minimalEVMResult.execResult.output = Buffer.from(output);
|
|
253
270
|
} else {
|
|
254
|
-
minimalEVMResult.execResult.output = output.returnValue;
|
|
271
|
+
minimalEVMResult.execResult.output = Buffer.from(output.returnValue);
|
|
255
272
|
}
|
|
256
273
|
}
|
|
257
274
|
|
|
@@ -278,3 +295,21 @@ export function edrTracingMessageToMinimalMessage(
|
|
|
278
295
|
isStaticCall: message.isStaticCall,
|
|
279
296
|
};
|
|
280
297
|
}
|
|
298
|
+
|
|
299
|
+
export function httpHeadersToEdr(input?: {
|
|
300
|
+
[name: string]: string;
|
|
301
|
+
}): HttpHeader[] | undefined {
|
|
302
|
+
let httpHeaders: HttpHeader[] | undefined;
|
|
303
|
+
if (input !== undefined) {
|
|
304
|
+
httpHeaders = [];
|
|
305
|
+
|
|
306
|
+
for (const [name, value] of Object.entries(input)) {
|
|
307
|
+
httpHeaders.push({
|
|
308
|
+
name,
|
|
309
|
+
value,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return httpHeaders;
|
|
315
|
+
}
|