hardhat 2.28.2 → 2.28.4

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.
@@ -28,7 +28,7 @@ exports.defaultHardhatNetworkHdAccountsConfigParams = {
28
28
  exports.DEFAULT_GAS_MULTIPLIER = 1;
29
29
  exports.defaultHardhatNetworkParams = {
30
30
  hardfork: hardforks_1.HardforkName.OSAKA,
31
- blockGasLimit: 30000000,
31
+ blockGasLimit: 60000000,
32
32
  gasPrice: exports.HARDHAT_NETWORK_DEFAULT_GAS_PRICE,
33
33
  chainId: 31337,
34
34
  throwOnTransactionFailures: true,
@@ -35,6 +35,9 @@ export declare class EdrProviderWrapper extends EventEmitter implements EIP1193P
35
35
  private readonly _loggerConfig;
36
36
  private _node;
37
37
  private readonly _subscriptionConfig;
38
+ private readonly _originalGenesisAccounts;
39
+ private readonly _originalCacheDir;
40
+ private readonly _originalChainOverrides;
38
41
  private _failedStackTraces;
39
42
  private _callOverrideCallback?;
40
43
  private constructor();
@@ -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,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;AAoCtC,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;IAuLjB,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
+ {"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,EAKzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAoCtC,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;IAGpC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAlB1C,OAAO,CAAC,kBAAkB,CAAK;IAG/B,OAAO,CAAC,qBAAqB,CAAC,CAAuB;IAErD,OAAO;WAkBa,MAAM,CACxB,MAAM,EAAE,4BAA4B,EACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,CAAC,EAAE,wBAAwB,GACvC,OAAO,CAAC,kBAAkB,CAAC;IA8KjB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YAiJhD,qBAAqB;YAerB,MAAM;YA8DN,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"}
@@ -69,37 +69,45 @@ class EdrProviderEventAdapter extends events_1.EventEmitter {
69
69
  class EdrProviderWrapper extends events_1.EventEmitter {
70
70
  constructor(_provider, _providerConfig, _loggerConfig,
71
71
  // we add this for backwards-compatibility with plugins like solidity-coverage
72
- _node, _subscriptionConfig) {
72
+ _node, _subscriptionConfig,
73
+ // Store the initial `genesisAccounts`, `cacheDir`, and `chainOverrides` for `hardhat_reset`
74
+ // calls, in case there is switching between local and fork configurations.
75
+ _originalGenesisAccounts, _originalCacheDir, _originalChainOverrides) {
73
76
  super();
74
77
  this._provider = _provider;
75
78
  this._providerConfig = _providerConfig;
76
79
  this._loggerConfig = _loggerConfig;
77
80
  this._node = _node;
78
81
  this._subscriptionConfig = _subscriptionConfig;
82
+ this._originalGenesisAccounts = _originalGenesisAccounts;
83
+ this._originalCacheDir = _originalCacheDir;
84
+ this._originalChainOverrides = _originalChainOverrides;
79
85
  this._failedStackTraces = 0;
80
86
  }
81
87
  static async create(config, loggerConfig, tracingConfig) {
82
- const { GENERIC_CHAIN_TYPE, l1GenesisState, l1HardforkFromString } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
88
+ const { GENERIC_CHAIN_TYPE } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
83
89
  const coinbase = config.coinbase ?? exports.DEFAULT_COINBASE;
90
+ const chainOverrides = Array.from(config.chains, ([chainId, hardforkConfig]) => {
91
+ return {
92
+ chainId: BigInt(chainId),
93
+ name: "Unknown",
94
+ hardforks: Array.from(hardforkConfig.hardforkHistory, ([hardfork, blockNumber]) => {
95
+ return {
96
+ condition: { blockNumber: BigInt(blockNumber) },
97
+ hardfork: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)((0, hardforks_1.getHardforkName)(hardfork)),
98
+ };
99
+ }),
100
+ };
101
+ });
102
+ const cacheDir = config.forkCachePath;
84
103
  let fork;
85
104
  if (config.forkConfig !== undefined) {
86
105
  fork = {
87
106
  blockNumber: config.forkConfig.blockNumber !== undefined
88
107
  ? BigInt(config.forkConfig.blockNumber)
89
108
  : undefined,
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
- }),
109
+ cacheDir,
110
+ chainOverrides,
103
111
  httpHeaders: (0, convertToEdr_1.httpHeadersToEdr)(config.forkConfig.httpHeaders),
104
112
  url: config.forkConfig.jsonRpcUrl,
105
113
  };
@@ -113,20 +121,8 @@ class EdrProviderWrapper extends events_1.EventEmitter {
113
121
  const printLineFn = loggerConfig.printLineFn ?? logger_1.printLine;
114
122
  const replaceLastLineFn = loggerConfig.replaceLastLineFn ?? logger_1.replaceLastLine;
115
123
  const hardforkName = (0, hardforks_1.getHardforkName)(config.hardfork);
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
- });
124
+ const edrHardfork = (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)(hardforkName);
125
+ const [genesisState, ownedAccounts] = _genesisStateAndOwnedAccounts(fork !== undefined, edrHardfork, config.genesisAccounts);
130
126
  const precompileOverrides = config.enableRip7212
131
127
  ? (0, hardforks_1.hardforkGte)(hardforkName, hardforks_1.HardforkName.OSAKA)
132
128
  ? [] // Osaka includes the P256 precompile natively
@@ -143,7 +139,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
143
139
  precompileOverrides,
144
140
  fork,
145
141
  genesisState,
146
- hardfork: (0, convertToEdr_1.ethereumsjsHardforkToEdrSpecId)(hardforkName),
142
+ hardfork: edrHardfork,
147
143
  initialDate,
148
144
  initialBaseFeePerGas: config.initialBaseFeePerGas !== undefined
149
145
  ? BigInt(config.initialBaseFeePerGas)
@@ -198,7 +194,7 @@ class EdrProviderWrapper extends events_1.EventEmitter {
198
194
  const minimalEthereumJsNode = {
199
195
  _vm: (0, minimal_vm_1.getMinimalEthereumJsVm)(provider),
200
196
  };
201
- const wrapper = new EdrProviderWrapper(provider, edrProviderConfig, edrLoggerConfig, minimalEthereumJsNode, edrSubscriptionConfig);
197
+ const wrapper = new EdrProviderWrapper(provider, edrProviderConfig, edrLoggerConfig, minimalEthereumJsNode, edrSubscriptionConfig, config.genesisAccounts, cacheDir, chainOverrides);
202
198
  // Pass through all events from the provider
203
199
  eventAdapter.addListener("ethEvent", wrapper._ethEventListener.bind(wrapper));
204
200
  return wrapper;
@@ -329,13 +325,22 @@ class EdrProviderWrapper extends events_1.EventEmitter {
329
325
  async _reset(networkConfig) {
330
326
  const { GENERIC_CHAIN_TYPE } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
331
327
  const forkConfig = networkConfig?.forking;
328
+ const [genesisState, ownedAccounts] = _genesisStateAndOwnedAccounts(forkConfig !== undefined, this._providerConfig.hardfork, this._originalGenesisAccounts);
329
+ this._providerConfig.genesisState = genesisState;
330
+ this._providerConfig.ownedAccounts = ownedAccounts;
332
331
  if (forkConfig !== undefined) {
332
+ const cacheDir = this._providerConfig.fork === undefined
333
+ ? this._originalCacheDir
334
+ : this._providerConfig.fork?.cacheDir;
335
+ const chainOverrides = this._providerConfig.fork === undefined
336
+ ? this._originalChainOverrides
337
+ : this._providerConfig.fork?.chainOverrides;
333
338
  this._providerConfig.fork = {
334
339
  blockNumber: forkConfig.blockNumber !== undefined
335
340
  ? BigInt(forkConfig.blockNumber)
336
341
  : undefined,
337
- cacheDir: this._providerConfig.fork?.cacheDir,
338
- chainOverrides: this._providerConfig.fork?.chainOverrides,
342
+ cacheDir,
343
+ chainOverrides,
339
344
  httpHeaders: (0, convertToEdr_1.httpHeadersToEdr)(forkConfig.httpHeaders),
340
345
  url: forkConfig.jsonRpcUrl,
341
346
  };
@@ -424,4 +429,22 @@ function _addCompilationResultParams(params) {
424
429
  function _resetParams(params) {
425
430
  return (0, validation_1.validateParams)(params, hardhat_network_1.optionalRpcHardhatNetworkConfig);
426
431
  }
432
+ function _genesisStateAndOwnedAccounts(isForked, hardfork, genesisAccounts) {
433
+ const { l1GenesisState, l1HardforkFromString } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
434
+ const genesisState = isForked
435
+ ? [] // TODO: Add support for overriding remote fork state when the local fork is different
436
+ : l1GenesisState(l1HardforkFromString(hardfork));
437
+ const ownedAccounts = genesisAccounts.map((account) => {
438
+ const privateKey = Uint8Array.from(
439
+ // Strip the `0x` prefix
440
+ Buffer.from(account.privateKey.slice(2), "hex"));
441
+ genesisState.push({
442
+ address: (0, util_1.privateToAddress)(privateKey),
443
+ balance: BigInt(account.balance),
444
+ code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
445
+ });
446
+ return account.privateKey;
447
+ });
448
+ return [genesisState, ownedAccounts];
449
+ }
427
450
  //# sourceMappingURL=provider.js.map
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "2.28.2",
3
+ "version": "2.28.4",
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.12.0-next.21",
89
+ "@nomicfoundation/edr": "0.12.0-next.22",
90
90
  "@nomicfoundation/solidity-analyzer": "^0.1.0",
91
91
  "@sentry/node": "^5.18.1",
92
92
  "adm-zip": "^0.4.16",
@@ -37,7 +37,7 @@ export const defaultHardhatNetworkParams: Omit<
37
37
  "gas" | "initialDate"
38
38
  > = {
39
39
  hardfork: HardforkName.OSAKA,
40
- blockGasLimit: 30_000_000,
40
+ blockGasLimit: 60_000_000,
41
41
  gasPrice: HARDHAT_NETWORK_DEFAULT_GAS_PRICE,
42
42
  chainId: 31337,
43
43
  throwOnTransactionFailures: true,
@@ -17,6 +17,8 @@ import type {
17
17
  TracingConfigWithBuffers,
18
18
  ProviderConfig,
19
19
  SubscriptionConfig,
20
+ ChainOverride,
21
+ AccountOverride,
20
22
  } from "@nomicfoundation/edr";
21
23
  import { privateToAddress } from "@ethereumjs/util";
22
24
  import { ContractDecoder, precompileP256Verify } from "@nomicfoundation/edr";
@@ -154,7 +156,12 @@ export class EdrProviderWrapper
154
156
  private _node: {
155
157
  _vm: MinimalEthereumJsVm;
156
158
  },
157
- private readonly _subscriptionConfig: SubscriptionConfig
159
+ private readonly _subscriptionConfig: SubscriptionConfig,
160
+ // Store the initial `genesisAccounts`, `cacheDir`, and `chainOverrides` for `hardhat_reset`
161
+ // calls, in case there is switching between local and fork configurations.
162
+ private readonly _originalGenesisAccounts: GenesisAccount[],
163
+ private readonly _originalCacheDir: string | undefined,
164
+ private readonly _originalChainOverrides: ChainOverride[] | undefined
158
165
  ) {
159
166
  super();
160
167
  }
@@ -164,13 +171,35 @@ export class EdrProviderWrapper
164
171
  loggerConfig: LoggerConfig,
165
172
  tracingConfig?: TracingConfigWithBuffers
166
173
  ): Promise<EdrProviderWrapper> {
167
- const { GENERIC_CHAIN_TYPE, l1GenesisState, l1HardforkFromString } =
168
- requireNapiRsModule(
169
- "@nomicfoundation/edr"
170
- ) as typeof import("@nomicfoundation/edr");
174
+ const { GENERIC_CHAIN_TYPE } = requireNapiRsModule(
175
+ "@nomicfoundation/edr"
176
+ ) as typeof import("@nomicfoundation/edr");
171
177
 
172
178
  const coinbase = config.coinbase ?? DEFAULT_COINBASE;
173
179
 
180
+ const chainOverrides = Array.from(
181
+ config.chains,
182
+ ([chainId, hardforkConfig]) => {
183
+ return {
184
+ chainId: BigInt(chainId),
185
+ name: "Unknown",
186
+ hardforks: Array.from(
187
+ hardforkConfig.hardforkHistory,
188
+ ([hardfork, blockNumber]) => {
189
+ return {
190
+ condition: { blockNumber: BigInt(blockNumber) },
191
+ hardfork: ethereumsjsHardforkToEdrSpecId(
192
+ getHardforkName(hardfork)
193
+ ),
194
+ };
195
+ }
196
+ ),
197
+ };
198
+ }
199
+ );
200
+
201
+ const cacheDir = config.forkCachePath;
202
+
174
203
  let fork;
175
204
  if (config.forkConfig !== undefined) {
176
205
  fork = {
@@ -178,27 +207,8 @@ export class EdrProviderWrapper
178
207
  config.forkConfig.blockNumber !== undefined
179
208
  ? BigInt(config.forkConfig.blockNumber)
180
209
  : undefined,
181
- cacheDir: config.forkCachePath,
182
- chainOverrides: Array.from(
183
- config.chains,
184
- ([chainId, hardforkConfig]) => {
185
- return {
186
- chainId: BigInt(chainId),
187
- name: "Unknown",
188
- hardforks: Array.from(
189
- hardforkConfig.hardforkHistory,
190
- ([hardfork, blockNumber]) => {
191
- return {
192
- condition: { blockNumber: BigInt(blockNumber) },
193
- hardfork: ethereumsjsHardforkToEdrSpecId(
194
- getHardforkName(hardfork)
195
- ),
196
- };
197
- }
198
- ),
199
- };
200
- }
201
- ),
210
+ cacheDir,
211
+ chainOverrides,
202
212
  httpHeaders: httpHeadersToEdr(config.forkConfig.httpHeaders),
203
213
  url: config.forkConfig.jsonRpcUrl,
204
214
  };
@@ -217,28 +227,13 @@ export class EdrProviderWrapper
217
227
  const replaceLastLineFn = loggerConfig.replaceLastLineFn ?? replaceLastLine;
218
228
 
219
229
  const hardforkName = getHardforkName(config.hardfork);
230
+ const edrHardfork = ethereumsjsHardforkToEdrSpecId(hardforkName);
220
231
 
221
- const genesisState =
222
- fork !== undefined
223
- ? [] // TODO: Add support for overriding remote fork state when the local fork is different
224
- : l1GenesisState(
225
- l1HardforkFromString(ethereumsjsHardforkToEdrSpecId(hardforkName))
226
- );
227
-
228
- const ownedAccounts = config.genesisAccounts.map((account) => {
229
- const privateKey = Uint8Array.from(
230
- // Strip the `0x` prefix
231
- Buffer.from(account.privateKey.slice(2), "hex")
232
- );
233
-
234
- genesisState.push({
235
- address: privateToAddress(privateKey),
236
- balance: BigInt(account.balance),
237
- code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
238
- });
239
-
240
- return account.privateKey;
241
- });
232
+ const [genesisState, ownedAccounts] = _genesisStateAndOwnedAccounts(
233
+ fork !== undefined,
234
+ edrHardfork,
235
+ config.genesisAccounts
236
+ );
242
237
 
243
238
  const precompileOverrides = config.enableRip7212
244
239
  ? hardforkGte(hardforkName, HardforkName.OSAKA)
@@ -258,7 +253,7 @@ export class EdrProviderWrapper
258
253
  precompileOverrides,
259
254
  fork,
260
255
  genesisState,
261
- hardfork: ethereumsjsHardforkToEdrSpecId(hardforkName),
256
+ hardfork: edrHardfork,
262
257
  initialDate,
263
258
  initialBaseFeePerGas:
264
259
  config.initialBaseFeePerGas !== undefined
@@ -334,7 +329,10 @@ export class EdrProviderWrapper
334
329
  edrProviderConfig,
335
330
  edrLoggerConfig,
336
331
  minimalEthereumJsNode,
337
- edrSubscriptionConfig
332
+ edrSubscriptionConfig,
333
+ config.genesisAccounts,
334
+ cacheDir,
335
+ chainOverrides
338
336
  );
339
337
 
340
338
  // Pass through all events from the provider
@@ -512,14 +510,33 @@ export class EdrProviderWrapper
512
510
  ) as typeof import("@nomicfoundation/edr");
513
511
  const forkConfig = networkConfig?.forking;
514
512
 
513
+ const [genesisState, ownedAccounts] = _genesisStateAndOwnedAccounts(
514
+ forkConfig !== undefined,
515
+ this._providerConfig.hardfork,
516
+ this._originalGenesisAccounts
517
+ );
518
+
519
+ this._providerConfig.genesisState = genesisState;
520
+ this._providerConfig.ownedAccounts = ownedAccounts;
521
+
515
522
  if (forkConfig !== undefined) {
523
+ const cacheDir =
524
+ this._providerConfig.fork === undefined
525
+ ? this._originalCacheDir
526
+ : this._providerConfig.fork?.cacheDir;
527
+
528
+ const chainOverrides =
529
+ this._providerConfig.fork === undefined
530
+ ? this._originalChainOverrides
531
+ : this._providerConfig.fork?.chainOverrides;
532
+
516
533
  this._providerConfig.fork = {
517
534
  blockNumber:
518
535
  forkConfig.blockNumber !== undefined
519
536
  ? BigInt(forkConfig.blockNumber)
520
537
  : undefined,
521
- cacheDir: this._providerConfig.fork?.cacheDir,
522
- chainOverrides: this._providerConfig.fork?.chainOverrides,
538
+ cacheDir,
539
+ chainOverrides,
523
540
  httpHeaders: httpHeadersToEdr(forkConfig.httpHeaders),
524
541
  url: forkConfig.jsonRpcUrl,
525
542
  };
@@ -659,3 +676,34 @@ function _addCompilationResultParams(
659
676
  function _resetParams(params: any[]): [RpcHardhatNetworkConfig | undefined] {
660
677
  return validateParams(params, optionalRpcHardhatNetworkConfig);
661
678
  }
679
+
680
+ function _genesisStateAndOwnedAccounts(
681
+ isForked: boolean,
682
+ hardfork: string,
683
+ genesisAccounts: GenesisAccount[]
684
+ ): [AccountOverride[], string[]] {
685
+ const { l1GenesisState, l1HardforkFromString } = requireNapiRsModule(
686
+ "@nomicfoundation/edr"
687
+ ) as typeof import("@nomicfoundation/edr");
688
+
689
+ const genesisState = isForked
690
+ ? [] // TODO: Add support for overriding remote fork state when the local fork is different
691
+ : l1GenesisState(l1HardforkFromString(hardfork));
692
+
693
+ const ownedAccounts = genesisAccounts.map((account) => {
694
+ const privateKey = Uint8Array.from(
695
+ // Strip the `0x` prefix
696
+ Buffer.from(account.privateKey.slice(2), "hex")
697
+ );
698
+
699
+ genesisState.push({
700
+ address: privateToAddress(privateKey),
701
+ balance: BigInt(account.balance),
702
+ code: new Uint8Array(), // Empty account code, removing potential delegation code when forking
703
+ });
704
+
705
+ return account.privateKey;
706
+ });
707
+
708
+ return [genesisState, ownedAccounts];
709
+ }