Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d1bfbf9

Browse files
committedAug 23, 2024
refactor: Only import ported runtime JS via requireNapiRs
1 parent c63d0a3 commit d1bfbf9

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,
@@ -169,15 +171,15 @@ export class EdrProviderWrapper
169171
private _callOverrideCallback?: CallOverrideCallback;
170172

171173
/** Used for internal stack trace tests. */
172-
private _vmTracer?: VMTracer;
174+
private _vmTracer?: VMTracerT;
173175

174176
private constructor(
175177
private readonly _provider: EdrProviderT,
176178
// we add this for backwards-compatibility with plugins like solidity-coverage
177179
private readonly _node: {
178180
_vm: MinimalEthereumJsVm;
179181
},
180-
private readonly _vmTraceDecoder: VmTraceDecoder,
182+
private readonly _vmTraceDecoder: VmTraceDecoderT,
181183
// The common configuration for EthereumJS VM is not used by EDR, but tests expect it as part of the provider.
182184
private readonly _common: Common,
183185
tracingConfig?: TracingConfig
@@ -467,7 +469,7 @@ export class EdrProviderWrapper
467469
*
468470
* Used for internal stack traces integration tests.
469471
*/
470-
public setVmTracer(vmTracer?: VMTracer) {
472+
public setVmTracer(vmTracer?: VMTracerT) {
471473
this._vmTracer = vmTracer;
472474
}
473475

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)
Please sign in to comment.