Skip to content

Commit 72e4a2d

Browse files
committed
feat: move the Edr Context logic to it's own module
1 parent 1869702 commit 72e4a2d

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import {
2+
EdrContext,
3+
GENERIC_CHAIN_TYPE,
4+
genericChainProviderFactory,
5+
L1_CHAIN_TYPE,
6+
l1ProviderFactory,
7+
OPTIMISM_CHAIN_TYPE,
8+
optimismProviderFactory,
9+
} from "@ignored/edr-optimism";
10+
11+
let _globalEdrContext: EdrContext | undefined;
12+
13+
export async function getGlobalEdrContext(): Promise<EdrContext> {
14+
if (_globalEdrContext === undefined) {
15+
_globalEdrContext = new EdrContext();
16+
await _globalEdrContext.registerProviderFactory(
17+
GENERIC_CHAIN_TYPE,
18+
genericChainProviderFactory(),
19+
);
20+
await _globalEdrContext.registerProviderFactory(
21+
L1_CHAIN_TYPE,
22+
l1ProviderFactory(),
23+
);
24+
await _globalEdrContext.registerProviderFactory(
25+
OPTIMISM_CHAIN_TYPE,
26+
optimismProviderFactory(),
27+
);
28+
}
29+
30+
return _globalEdrContext;
31+
}

v-next/hardhat/src/internal/builtin-plugins/network-manager/edr/edr-provider.ts

+1-24
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,10 @@ import type {
2727
} from "@ignored/edr-optimism";
2828

2929
import {
30-
EdrContext,
3130
createModelsAndDecodeBytecodes,
3231
initializeVmTraceDecoder,
3332
SolidityTracer,
3433
VmTracer,
35-
GENERIC_CHAIN_TYPE,
36-
OPTIMISM_CHAIN_TYPE,
37-
genericChainProviderFactory,
38-
optimismProviderFactory,
3934
} from "@ignored/edr-optimism";
4035
import { toSeconds } from "@ignored/hardhat-vnext-utils/date";
4136
import { deepEqual } from "@ignored/hardhat-vnext-utils/lang";
@@ -50,6 +45,7 @@ import { DEFAULT_HD_ACCOUNTS_CONFIG_PARAMS } from "../accounts/constants.js";
5045
import { BaseProvider } from "../base-provider.js";
5146
import { getJsonRpcRequest, isFailedJsonRpcResponse } from "../json-rpc.js";
5247

48+
import { getGlobalEdrContext } from "./edr-context.js";
5349
import {
5450
InvalidArgumentsError,
5551
InvalidInputError,
@@ -121,25 +117,6 @@ export const EDR_NETWORK_DEFAULT_PRIVATE_KEYS: string[] = [
121117
"0xdf57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e",
122118
];
123119

124-
// Lazy initialize the global EDR context.
125-
let _globalEdrContext: EdrContext | undefined;
126-
export async function getGlobalEdrContext(): Promise<EdrContext> {
127-
if (_globalEdrContext === undefined) {
128-
// Only one is allowed to exist
129-
_globalEdrContext = new EdrContext();
130-
await _globalEdrContext.registerProviderFactory(
131-
GENERIC_CHAIN_TYPE,
132-
genericChainProviderFactory(),
133-
);
134-
await _globalEdrContext.registerProviderFactory(
135-
OPTIMISM_CHAIN_TYPE,
136-
optimismProviderFactory(),
137-
);
138-
}
139-
140-
return _globalEdrContext;
141-
}
142-
143120
interface EdrProviderConfig {
144121
networkConfig: EdrNetworkConfig;
145122
loggerConfig?: LoggerConfig;

0 commit comments

Comments
 (0)