Skip to content

Commit d7f6610

Browse files
committed
refactor: Only import ported runtime JS via requireNapiRs
1 parent d8a5f15 commit d7f6610

File tree

11 files changed

+84
-17
lines changed

11 files changed

+84
-17
lines changed

packages/hardhat-core/src/internal/hardhat-network/provider/provider.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import type {
1212
import type {
1313
EdrContext,
1414
Provider as EdrProviderT,
15+
VmTraceDecoder as VmTraceDecoderT,
16+
VMTracer as VMTracerT,
1517
RawTrace,
1618
Response,
1719
SubscriptionEvent,
@@ -168,15 +170,15 @@ export class EdrProviderWrapper
168170
private _callOverrideCallback?: CallOverrideCallback;
169171

170172
/** Used for internal stack trace tests. */
171-
private _vmTracer?: VMTracer;
173+
private _vmTracer?: VMTracerT;
172174

173175
private constructor(
174176
private readonly _provider: EdrProviderT,
175177
// we add this for backwards-compatibility with plugins like solidity-coverage
176178
private readonly _node: {
177179
_vm: MinimalEthereumJsVm;
178180
},
179-
private readonly _vmTraceDecoder: VmTraceDecoder,
181+
private readonly _vmTraceDecoder: VmTraceDecoderT,
180182
// The common configuration for EthereumJS VM is not used by EDR, but tests expect it as part of the provider.
181183
private readonly _common: Common,
182184
tracingConfig?: TracingConfig
@@ -471,7 +473,7 @@ export class EdrProviderWrapper
471473
*
472474
* Used for internal stack traces integration tests.
473475
*/
474-
public setVmTracer(vmTracer?: VMTracer) {
476+
public setVmTracer(vmTracer?: VMTracerT) {
475477
this._vmTracer = vmTracer;
476478
}
477479

Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
export { ReturnData } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { ReturnData } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
7+
export { ReturnData };
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
1-
import { ExitCode } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../../common/napi-rs";
2+
3+
const { ExitCode } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
27
export { ExitCode };
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
export { createModelsAndDecodeBytecodes } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { createModelsAndDecodeBytecodes } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
7+
export { createModelsAndDecodeBytecodes };
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
export { printMessageTrace, printStackTrace } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { printMessageTrace, printStackTrace } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
7+
export { printMessageTrace, printStackTrace };
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
import { linkHexStringBytecode } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { linkHexStringBytecode } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
26

37
export { linkHexStringBytecode };

packages/hardhat-core/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts

+18-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type {
2+
SourceReference,
23
CallstackEntryStackTraceEntry,
34
UnrecognizedCreateCallstackEntryStackTraceEntry,
45
UnrecognizedContractCallstackEntryStackTraceEntry,
@@ -25,6 +26,22 @@ import type {
2526
ContractCallRunOutOfGasError,
2627
} from "@nomicfoundation/edr";
2728

29+
import { requireNapiRsModule } from "../../../common/napi-rs";
30+
31+
const {
32+
StackTraceEntryType,
33+
stackTraceEntryTypeToString,
34+
FALLBACK_FUNCTION_NAME,
35+
RECEIVE_FUNCTION_NAME,
36+
CONSTRUCTOR_FUNCTION_NAME,
37+
UNRECOGNIZED_FUNCTION_NAME,
38+
UNKNOWN_FUNCTION_NAME,
39+
PRECOMPILE_FUNCTION_NAME,
40+
UNRECOGNIZED_CONTRACT_NAME,
41+
} = requireNapiRsModule(
42+
"@nomicfoundation/edr"
43+
) as typeof import("@nomicfoundation/edr");
44+
2845
export {
2946
SourceReference,
3047
StackTraceEntryType,
@@ -36,7 +53,7 @@ export {
3653
UNKNOWN_FUNCTION_NAME,
3754
PRECOMPILE_FUNCTION_NAME,
3855
UNRECOGNIZED_CONTRACT_NAME,
39-
} from "@nomicfoundation/edr";
56+
};
4057

4158
export type {
4259
CallstackEntryStackTraceEntry,
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
1-
export { SolidityTracer } from "@nomicfoundation/edr";
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { SolidityTracer } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
7+
export { SolidityTracer };

packages/hardhat-core/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1+
import type { VmTraceDecoder as VmTraceDecoderT } from "@nomicfoundation/edr";
12
import chalk from "chalk";
23
import debug from "debug";
3-
import { VmTraceDecoder, initializeVmTraceDecoder } from "@nomicfoundation/edr";
44
import { Reporter } from "../../sentry/reporter";
55
import { TracingConfig } from "../provider/node-types";
6+
import { requireNapiRsModule } from "../../../common/napi-rs";
67

78
const log = debug("hardhat:core:hardhat-network:node");
89

10+
const { VmTraceDecoder, initializeVmTraceDecoder } = requireNapiRsModule(
11+
"@nomicfoundation/edr"
12+
) as typeof import("@nomicfoundation/edr");
13+
914
function initializeVmTraceDecoderWrapper(
10-
vmTraceDecoder: VmTraceDecoder,
15+
vmTraceDecoder: VmTraceDecoderT,
1116
tracingConfig: TracingConfig
1217
) {
1318
try {
@@ -32,5 +37,6 @@ function initializeVmTraceDecoderWrapper(
3237

3338
export {
3439
VmTraceDecoder,
40+
VmTraceDecoderT,
3541
initializeVmTraceDecoderWrapper as initializeVmTraceDecoder,
3642
};
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
1-
import { VmTracer as VMTracer } from "@nomicfoundation/edr";
2-
export { VMTracer };
1+
import { requireNapiRsModule } from "../../../common/napi-rs";
2+
3+
const { VmTracer } = requireNapiRsModule(
4+
"@nomicfoundation/edr"
5+
) as typeof import("@nomicfoundation/edr");
6+
7+
export { VmTracer as VMTracer };

packages/hardhat-core/test/internal/hardhat-network/stack-traces/test.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import fsExtra from "fs-extra";
55
import path from "path";
66
import semver from "semver";
77

8-
import { stackTraceEntryTypeToString } from "@nomicfoundation/edr";
98
import { EdrProviderWrapper } from "../../../../src/internal/hardhat-network/provider/provider";
109
import { ReturnData } from "../../../../src/internal/hardhat-network/provider/return-data";
1110
import {
@@ -27,7 +26,7 @@ import {
2726
StackTraceEntryType,
2827
} from "../../../../src/internal/hardhat-network/stack-traces/solidity-stack-trace";
2928
import { SolidityTracer } from "../../../../src/internal/hardhat-network/stack-traces/solidityTracer";
30-
import { VmTraceDecoder } from "../../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder";
29+
import { VmTraceDecoderT } from "../../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder";
3130
import {
3231
BuildInfo,
3332
CompilerInput,
@@ -40,6 +39,7 @@ import { SUPPORTED_SOLIDITY_VERSION_RANGE } from "../../../../src/internal/hardh
4039
import { TracingConfig } from "../../../../src/internal/hardhat-network/provider/node-types";
4140
import { BUILD_INFO_FORMAT_VERSION } from "../../../../src/internal/constants";
4241
import { FakeModulesLogger } from "../helpers/fakeLogger";
42+
import { requireNapiRsModule } from "../../../../src/common/napi-rs";
4343
import {
4444
compileFiles,
4545
COMPILER_DOWNLOAD_TIMEOUT,
@@ -58,6 +58,10 @@ import {
5858
traceTransaction,
5959
} from "./execution";
6060

61+
const { stackTraceEntryTypeToString } = requireNapiRsModule(
62+
"@nomicfoundation/edr"
63+
) as typeof import("@nomicfoundation/edr");
64+
6165
interface StackFrameDescription {
6266
type: string;
6367
sourceReference?: {
@@ -540,7 +544,7 @@ async function runTest(
540544

541545
compareConsoleLogs(logger.lines, tx.consoleLogs);
542546

543-
const vmTraceDecoder = (provider as any)._vmTraceDecoder as VmTraceDecoder;
547+
const vmTraceDecoder = (provider as any)._vmTraceDecoder as VmTraceDecoderT;
544548
const decodedTrace = vmTraceDecoder.tryToDecodeMessageTrace(trace);
545549

546550
try {

0 commit comments

Comments
 (0)