hardhat 2.22.11 → 2.22.12
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 +2 -3
- package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
- package/internal/hardhat-network/provider/provider.js +5 -19
- package/internal/hardhat-network/provider/provider.js.map +1 -1
- package/internal/hardhat-network/provider/return-data.d.ts +2 -15
- package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
- package/internal/hardhat-network/provider/return-data.js +2 -50
- package/internal/hardhat-network/provider/return-data.js.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.d.ts +2 -20
- package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
- package/internal/hardhat-network/provider/vm/exit.js +3 -78
- package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +2 -3
- package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/compiler-to-model.js +2 -351
- package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts +2 -7
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +3 -143
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
- package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
- package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.d.ts +2 -51
- package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/message-trace.js +0 -46
- package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +58 -53
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +2 -13
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +2 -162
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +4 -15
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +6 -70
- package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +2 -19
- package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -150
- package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
- package/package.json +4 -4
- package/src/internal/hardhat-network/provider/provider.ts +11 -24
- package/src/internal/hardhat-network/provider/return-data.ts +5 -73
- package/src/internal/hardhat-network/provider/vm/exit.ts +4 -92
- package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +5 -697
- package/src/internal/hardhat-network/stack-traces/debug.ts +5 -218
- package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
- package/src/internal/hardhat-network/stack-traces/message-trace.ts +5 -122
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -15
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -253
- package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +15 -108
- package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +5 -206
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
- package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
- package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
- package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
- package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
- package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/model.js +0 -328
- package/internal/hardhat-network/stack-traces/model.js.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
- package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
- package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
- package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
- package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
- package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
- package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
- package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
- package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
- package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
- package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
|
@@ -1,40 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UNRECOGNIZED_CONTRACT_NAME = exports.PRECOMPILE_FUNCTION_NAME = exports.UNKNOWN_FUNCTION_NAME = exports.UNRECOGNIZED_FUNCTION_NAME = exports.CONSTRUCTOR_FUNCTION_NAME = exports.RECEIVE_FUNCTION_NAME = exports.FALLBACK_FUNCTION_NAME = exports.StackTraceEntryType = void 0;
|
|
4
|
-
|
|
5
|
-
(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
StackTraceEntryType[StackTraceEntryType["FALLBACK_NOT_PAYABLE_ERROR"] = 9] = "FALLBACK_NOT_PAYABLE_ERROR";
|
|
16
|
-
StackTraceEntryType[StackTraceEntryType["FALLBACK_NOT_PAYABLE_AND_NO_RECEIVE_ERROR"] = 10] = "FALLBACK_NOT_PAYABLE_AND_NO_RECEIVE_ERROR";
|
|
17
|
-
StackTraceEntryType[StackTraceEntryType["UNRECOGNIZED_FUNCTION_WITHOUT_FALLBACK_ERROR"] = 11] = "UNRECOGNIZED_FUNCTION_WITHOUT_FALLBACK_ERROR";
|
|
18
|
-
StackTraceEntryType[StackTraceEntryType["MISSING_FALLBACK_OR_RECEIVE_ERROR"] = 12] = "MISSING_FALLBACK_OR_RECEIVE_ERROR";
|
|
19
|
-
StackTraceEntryType[StackTraceEntryType["RETURNDATA_SIZE_ERROR"] = 13] = "RETURNDATA_SIZE_ERROR";
|
|
20
|
-
StackTraceEntryType[StackTraceEntryType["NONCONTRACT_ACCOUNT_CALLED_ERROR"] = 14] = "NONCONTRACT_ACCOUNT_CALLED_ERROR";
|
|
21
|
-
StackTraceEntryType[StackTraceEntryType["CALL_FAILED_ERROR"] = 15] = "CALL_FAILED_ERROR";
|
|
22
|
-
StackTraceEntryType[StackTraceEntryType["DIRECT_LIBRARY_CALL_ERROR"] = 16] = "DIRECT_LIBRARY_CALL_ERROR";
|
|
23
|
-
StackTraceEntryType[StackTraceEntryType["UNRECOGNIZED_CREATE_ERROR"] = 17] = "UNRECOGNIZED_CREATE_ERROR";
|
|
24
|
-
StackTraceEntryType[StackTraceEntryType["UNRECOGNIZED_CONTRACT_ERROR"] = 18] = "UNRECOGNIZED_CONTRACT_ERROR";
|
|
25
|
-
StackTraceEntryType[StackTraceEntryType["OTHER_EXECUTION_ERROR"] = 19] = "OTHER_EXECUTION_ERROR";
|
|
26
|
-
// This is a special case to handle a regression introduced in solc 0.6.3
|
|
27
|
-
// For more info: https://github.com/ethereum/solidity/issues/9006
|
|
28
|
-
StackTraceEntryType[StackTraceEntryType["UNMAPPED_SOLC_0_6_3_REVERT_ERROR"] = 20] = "UNMAPPED_SOLC_0_6_3_REVERT_ERROR";
|
|
29
|
-
StackTraceEntryType[StackTraceEntryType["CONTRACT_TOO_LARGE_ERROR"] = 21] = "CONTRACT_TOO_LARGE_ERROR";
|
|
30
|
-
StackTraceEntryType[StackTraceEntryType["INTERNAL_FUNCTION_CALLSTACK_ENTRY"] = 22] = "INTERNAL_FUNCTION_CALLSTACK_ENTRY";
|
|
31
|
-
StackTraceEntryType[StackTraceEntryType["CONTRACT_CALL_RUN_OUT_OF_GAS_ERROR"] = 23] = "CONTRACT_CALL_RUN_OUT_OF_GAS_ERROR";
|
|
32
|
-
})(StackTraceEntryType = exports.StackTraceEntryType || (exports.StackTraceEntryType = {}));
|
|
33
|
-
exports.FALLBACK_FUNCTION_NAME = "<fallback>";
|
|
34
|
-
exports.RECEIVE_FUNCTION_NAME = "<receive>";
|
|
35
|
-
exports.CONSTRUCTOR_FUNCTION_NAME = "constructor";
|
|
36
|
-
exports.UNRECOGNIZED_FUNCTION_NAME = "<unrecognized-selector>";
|
|
37
|
-
exports.UNKNOWN_FUNCTION_NAME = "<unknown>";
|
|
38
|
-
exports.PRECOMPILE_FUNCTION_NAME = "<precompile>";
|
|
39
|
-
exports.UNRECOGNIZED_CONTRACT_NAME = "<UnrecognizedContract>";
|
|
3
|
+
exports.UNRECOGNIZED_CONTRACT_NAME = exports.PRECOMPILE_FUNCTION_NAME = exports.UNKNOWN_FUNCTION_NAME = exports.UNRECOGNIZED_FUNCTION_NAME = exports.CONSTRUCTOR_FUNCTION_NAME = exports.RECEIVE_FUNCTION_NAME = exports.FALLBACK_FUNCTION_NAME = exports.stackTraceEntryTypeToString = exports.StackTraceEntryType = void 0;
|
|
4
|
+
const napi_rs_1 = require("../../../common/napi-rs");
|
|
5
|
+
const { StackTraceEntryType, stackTraceEntryTypeToString, FALLBACK_FUNCTION_NAME, RECEIVE_FUNCTION_NAME, CONSTRUCTOR_FUNCTION_NAME, UNRECOGNIZED_FUNCTION_NAME, UNKNOWN_FUNCTION_NAME, PRECOMPILE_FUNCTION_NAME, UNRECOGNIZED_CONTRACT_NAME, } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
6
|
+
exports.StackTraceEntryType = StackTraceEntryType;
|
|
7
|
+
exports.stackTraceEntryTypeToString = stackTraceEntryTypeToString;
|
|
8
|
+
exports.FALLBACK_FUNCTION_NAME = FALLBACK_FUNCTION_NAME;
|
|
9
|
+
exports.RECEIVE_FUNCTION_NAME = RECEIVE_FUNCTION_NAME;
|
|
10
|
+
exports.CONSTRUCTOR_FUNCTION_NAME = CONSTRUCTOR_FUNCTION_NAME;
|
|
11
|
+
exports.UNRECOGNIZED_FUNCTION_NAME = UNRECOGNIZED_FUNCTION_NAME;
|
|
12
|
+
exports.UNKNOWN_FUNCTION_NAME = UNKNOWN_FUNCTION_NAME;
|
|
13
|
+
exports.PRECOMPILE_FUNCTION_NAME = PRECOMPILE_FUNCTION_NAME;
|
|
14
|
+
exports.UNRECOGNIZED_CONTRACT_NAME = UNRECOGNIZED_CONTRACT_NAME;
|
|
40
15
|
//# sourceMappingURL=solidity-stack-trace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solidity-stack-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"solidity-stack-trace.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts"],"names":[],"mappings":";;;AA4BA,qDAA8D;AAE9D,MAAM,EACJ,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,GAAG,IAAA,6BAAmB,EACrB,sBAAsB,CACkB,CAAC;AAIzC,kDAAmB;AACnB,kEAA2B;AAC3B,wDAAsB;AACtB,sDAAqB;AACrB,8DAAyB;AACzB,gEAA0B;AAC1B,sDAAqB;AACrB,4DAAwB;AACxB,gEAA0B"}
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare class SolidityTracer {
|
|
4
|
-
private _errorInferrer;
|
|
5
|
-
getStackTrace(maybeDecodedMessageTrace: MessageTrace): SolidityStackTrace;
|
|
6
|
-
private _getCallMessageStackTrace;
|
|
7
|
-
private _getUnrecognizedMessageStackTrace;
|
|
8
|
-
private _getCreateMessageStackTrace;
|
|
9
|
-
private _getPrecompileMessageStackTrace;
|
|
10
|
-
private _traceEvmExecution;
|
|
11
|
-
private _rawTraceEvmExecution;
|
|
12
|
-
private _getLastSubtrace;
|
|
13
|
-
}
|
|
1
|
+
declare const SolidityTracer: typeof import("@nomicfoundation/edr").SolidityTracer;
|
|
2
|
+
export { SolidityTracer };
|
|
14
3
|
//# sourceMappingURL=solidityTracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solidityTracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solidityTracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"AAEA,QAAA,MAAQ,cAAc,sDAEoB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,167 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SolidityTracer = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const exit_1 = require("../provider/vm/exit");
|
|
7
|
-
const error_inferrer_1 = require("./error-inferrer");
|
|
8
|
-
const mapped_inlined_internal_functions_heuristics_1 = require("./mapped-inlined-internal-functions-heuristics");
|
|
9
|
-
const message_trace_1 = require("./message-trace");
|
|
10
|
-
const model_1 = require("./model");
|
|
11
|
-
const opcodes_1 = require("./opcodes");
|
|
12
|
-
const solidity_stack_trace_1 = require("./solidity-stack-trace");
|
|
13
|
-
class SolidityTracer {
|
|
14
|
-
constructor() {
|
|
15
|
-
this._errorInferrer = new error_inferrer_1.ErrorInferrer();
|
|
16
|
-
}
|
|
17
|
-
getStackTrace(maybeDecodedMessageTrace) {
|
|
18
|
-
if (!maybeDecodedMessageTrace.exit.isError()) {
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
if ((0, message_trace_1.isPrecompileTrace)(maybeDecodedMessageTrace)) {
|
|
22
|
-
return this._getPrecompileMessageStackTrace(maybeDecodedMessageTrace);
|
|
23
|
-
}
|
|
24
|
-
if ((0, message_trace_1.isDecodedCreateTrace)(maybeDecodedMessageTrace)) {
|
|
25
|
-
return this._getCreateMessageStackTrace(maybeDecodedMessageTrace);
|
|
26
|
-
}
|
|
27
|
-
if ((0, message_trace_1.isDecodedCallTrace)(maybeDecodedMessageTrace)) {
|
|
28
|
-
return this._getCallMessageStackTrace(maybeDecodedMessageTrace);
|
|
29
|
-
}
|
|
30
|
-
return this._getUnrecognizedMessageStackTrace(maybeDecodedMessageTrace);
|
|
31
|
-
}
|
|
32
|
-
_getCallMessageStackTrace(trace) {
|
|
33
|
-
const inferredError = this._errorInferrer.inferBeforeTracingCallMessage(trace);
|
|
34
|
-
if (inferredError !== undefined) {
|
|
35
|
-
return inferredError;
|
|
36
|
-
}
|
|
37
|
-
return this._traceEvmExecution(trace);
|
|
38
|
-
}
|
|
39
|
-
_getUnrecognizedMessageStackTrace(trace) {
|
|
40
|
-
const subtrace = this._getLastSubtrace(trace);
|
|
41
|
-
if (subtrace !== undefined) {
|
|
42
|
-
// This is not a very exact heuristic, but most of the time it will be right, as solidity
|
|
43
|
-
// reverts if a call fails, and most contracts are in solidity
|
|
44
|
-
if (subtrace.exit.isError() &&
|
|
45
|
-
(0, ethereumjs_util_1.equalsBytes)(trace.returnData, subtrace.returnData)) {
|
|
46
|
-
let unrecognizedEntry;
|
|
47
|
-
if ((0, message_trace_1.isCreateTrace)(trace)) {
|
|
48
|
-
unrecognizedEntry = {
|
|
49
|
-
type: solidity_stack_trace_1.StackTraceEntryType.UNRECOGNIZED_CREATE_CALLSTACK_ENTRY,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
unrecognizedEntry = {
|
|
54
|
-
type: solidity_stack_trace_1.StackTraceEntryType.UNRECOGNIZED_CONTRACT_CALLSTACK_ENTRY,
|
|
55
|
-
address: trace.address,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return [unrecognizedEntry, ...this.getStackTrace(subtrace)];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (trace.exit.kind === exit_1.ExitCode.CODESIZE_EXCEEDS_MAXIMUM) {
|
|
62
|
-
return [
|
|
63
|
-
{
|
|
64
|
-
type: solidity_stack_trace_1.StackTraceEntryType.CONTRACT_TOO_LARGE_ERROR,
|
|
65
|
-
},
|
|
66
|
-
];
|
|
67
|
-
}
|
|
68
|
-
const isInvalidOpcodeError = trace.exit.kind === exit_1.ExitCode.INVALID_OPCODE;
|
|
69
|
-
if ((0, message_trace_1.isCreateTrace)(trace)) {
|
|
70
|
-
return [
|
|
71
|
-
{
|
|
72
|
-
type: solidity_stack_trace_1.StackTraceEntryType.UNRECOGNIZED_CREATE_ERROR,
|
|
73
|
-
message: new return_data_1.ReturnData(trace.returnData),
|
|
74
|
-
isInvalidOpcodeError,
|
|
75
|
-
},
|
|
76
|
-
];
|
|
77
|
-
}
|
|
78
|
-
return [
|
|
79
|
-
{
|
|
80
|
-
type: solidity_stack_trace_1.StackTraceEntryType.UNRECOGNIZED_CONTRACT_ERROR,
|
|
81
|
-
address: trace.address,
|
|
82
|
-
message: new return_data_1.ReturnData(trace.returnData),
|
|
83
|
-
isInvalidOpcodeError,
|
|
84
|
-
},
|
|
85
|
-
];
|
|
86
|
-
}
|
|
87
|
-
_getCreateMessageStackTrace(trace) {
|
|
88
|
-
const inferredError = this._errorInferrer.inferBeforeTracingCreateMessage(trace);
|
|
89
|
-
if (inferredError !== undefined) {
|
|
90
|
-
return inferredError;
|
|
91
|
-
}
|
|
92
|
-
return this._traceEvmExecution(trace);
|
|
93
|
-
}
|
|
94
|
-
_getPrecompileMessageStackTrace(trace) {
|
|
95
|
-
return [
|
|
96
|
-
{
|
|
97
|
-
type: solidity_stack_trace_1.StackTraceEntryType.PRECOMPILE_ERROR,
|
|
98
|
-
precompile: trace.precompile,
|
|
99
|
-
},
|
|
100
|
-
];
|
|
101
|
-
}
|
|
102
|
-
_traceEvmExecution(trace) {
|
|
103
|
-
const stackTrace = this._rawTraceEvmExecution(trace);
|
|
104
|
-
if ((0, mapped_inlined_internal_functions_heuristics_1.stackTraceMayRequireAdjustments)(stackTrace, trace)) {
|
|
105
|
-
return (0, mapped_inlined_internal_functions_heuristics_1.adjustStackTrace)(stackTrace, trace);
|
|
106
|
-
}
|
|
107
|
-
return stackTrace;
|
|
108
|
-
}
|
|
109
|
-
_rawTraceEvmExecution(trace) {
|
|
110
|
-
const stacktrace = [];
|
|
111
|
-
let subtracesSeen = 0;
|
|
112
|
-
// There was a jump into a function according to the sourcemaps
|
|
113
|
-
let jumpedIntoFunction = false;
|
|
114
|
-
const functionJumpdests = [];
|
|
115
|
-
let lastSubmessageData;
|
|
116
|
-
for (let stepIndex = 0; stepIndex < trace.steps.length; stepIndex++) {
|
|
117
|
-
const step = trace.steps[stepIndex];
|
|
118
|
-
const nextStep = trace.steps[stepIndex + 1];
|
|
119
|
-
if ((0, message_trace_1.isEvmStep)(step)) {
|
|
120
|
-
const inst = trace.bytecode.getInstruction(step.pc);
|
|
121
|
-
if (inst.jumpType === model_1.JumpType.INTO_FUNCTION &&
|
|
122
|
-
nextStep !== undefined) {
|
|
123
|
-
const nextEvmStep = nextStep; // A jump can't be followed by a subtrace
|
|
124
|
-
const nextInst = trace.bytecode.getInstruction(nextEvmStep.pc);
|
|
125
|
-
if (nextInst !== undefined && nextInst.opcode === opcodes_1.Opcode.JUMPDEST) {
|
|
126
|
-
stacktrace.push((0, error_inferrer_1.instructionToCallstackStackTraceEntry)(trace.bytecode, inst));
|
|
127
|
-
if (nextInst.location !== undefined) {
|
|
128
|
-
jumpedIntoFunction = true;
|
|
129
|
-
}
|
|
130
|
-
functionJumpdests.push(nextInst);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else if (inst.jumpType === model_1.JumpType.OUTOF_FUNCTION) {
|
|
134
|
-
stacktrace.pop();
|
|
135
|
-
functionJumpdests.pop();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
subtracesSeen += 1;
|
|
140
|
-
// If there are more subtraces, this one didn't terminate the execution
|
|
141
|
-
if (subtracesSeen < trace.numberOfSubtraces) {
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
const submessageTrace = this.getStackTrace(step);
|
|
145
|
-
lastSubmessageData = {
|
|
146
|
-
messageTrace: step,
|
|
147
|
-
stepIndex,
|
|
148
|
-
stacktrace: submessageTrace,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
const stacktraceWithInferredError = this._errorInferrer.inferAfterTracing(trace, stacktrace, functionJumpdests, jumpedIntoFunction, lastSubmessageData);
|
|
153
|
-
return this._errorInferrer.filterRedundantFrames(stacktraceWithInferredError);
|
|
154
|
-
}
|
|
155
|
-
_getLastSubtrace(trace) {
|
|
156
|
-
if (trace.numberOfSubtraces < 1) {
|
|
157
|
-
return undefined;
|
|
158
|
-
}
|
|
159
|
-
let i = trace.steps.length - 1;
|
|
160
|
-
while ((0, message_trace_1.isEvmStep)(trace.steps[i])) {
|
|
161
|
-
i -= 1;
|
|
162
|
-
}
|
|
163
|
-
return trace.steps[i];
|
|
164
|
-
}
|
|
165
|
-
}
|
|
4
|
+
const napi_rs_1 = require("../../../common/napi-rs");
|
|
5
|
+
const { SolidityTracer } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
166
6
|
exports.SolidityTracer = SolidityTracer;
|
|
167
7
|
//# sourceMappingURL=solidityTracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAE9D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,6BAAmB,EAC5C,sBAAsB,CACkB,CAAC;AAElC,wCAAc"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import type { VmTraceDecoder as VmTraceDecoderT } from "@nomicfoundation/edr";
|
|
2
2
|
import { TracingConfig } from "../provider/node-types";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export declare class VmTraceDecoder {
|
|
7
|
-
private readonly _contractsIdentifier;
|
|
8
|
-
constructor(_contractsIdentifier: ContractsIdentifier);
|
|
9
|
-
getContractAndFunctionNamesForCall(code: Buffer, calldata?: Buffer): {
|
|
10
|
-
contractName: string;
|
|
11
|
-
functionName?: string;
|
|
12
|
-
};
|
|
13
|
-
tryToDecodeMessageTrace(messageTrace: MessageTrace): MessageTrace;
|
|
14
|
-
addBytecode(bytecode: Bytecode): void;
|
|
15
|
-
}
|
|
16
|
-
export declare function initializeVmTraceDecoder(vmTraceDecoder: VmTraceDecoder, tracingConfig: TracingConfig): void;
|
|
3
|
+
declare const VmTraceDecoder: typeof VmTraceDecoderT;
|
|
4
|
+
declare function initializeVmTraceDecoderWrapper(vmTraceDecoder: VmTraceDecoderT, tracingConfig: TracingConfig): void;
|
|
5
|
+
export { VmTraceDecoder, VmTraceDecoderT, initializeVmTraceDecoderWrapper as initializeVmTraceDecoder, };
|
|
17
6
|
//# sourceMappingURL=vm-trace-decoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-trace-decoder.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vm-trace-decoder.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,QAAA,MAAQ,cAAc,wBAEoB,CAAC;AAE3C,iBAAS,+BAA+B,CACtC,cAAc,EAAE,eAAe,EAC/B,aAAa,EAAE,aAAa,QAoB7B;AAED,OAAO,EACL,cAAc,EACd,eAAe,EACf,+BAA+B,IAAI,wBAAwB,GAC5D,CAAC"}
|
|
@@ -7,85 +7,21 @@ exports.initializeVmTraceDecoder = exports.VmTraceDecoder = void 0;
|
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const debug_1 = __importDefault(require("debug"));
|
|
9
9
|
const reporter_1 = require("../../sentry/reporter");
|
|
10
|
-
const
|
|
11
|
-
const message_trace_1 = require("./message-trace");
|
|
12
|
-
const model_1 = require("./model");
|
|
13
|
-
const solidity_stack_trace_1 = require("./solidity-stack-trace");
|
|
10
|
+
const napi_rs_1 = require("../../../common/napi-rs");
|
|
14
11
|
const log = (0, debug_1.default)("hardhat:core:hardhat-network:node");
|
|
15
|
-
|
|
16
|
-
constructor(_contractsIdentifier) {
|
|
17
|
-
this._contractsIdentifier = _contractsIdentifier;
|
|
18
|
-
}
|
|
19
|
-
getContractAndFunctionNamesForCall(code, calldata) {
|
|
20
|
-
const isCreate = calldata === undefined;
|
|
21
|
-
const bytecode = this._contractsIdentifier.getBytecodeForCall(code, isCreate);
|
|
22
|
-
const contractName = bytecode?.contract.name ?? solidity_stack_trace_1.UNRECOGNIZED_CONTRACT_NAME;
|
|
23
|
-
if (isCreate) {
|
|
24
|
-
return {
|
|
25
|
-
contractName,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
if (bytecode === undefined) {
|
|
30
|
-
return {
|
|
31
|
-
contractName,
|
|
32
|
-
functionName: "",
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
const func = bytecode.contract.getFunctionFromSelector(calldata.slice(0, 4));
|
|
37
|
-
const functionName = func === undefined
|
|
38
|
-
? solidity_stack_trace_1.UNRECOGNIZED_FUNCTION_NAME
|
|
39
|
-
: func.type === model_1.ContractFunctionType.FALLBACK
|
|
40
|
-
? solidity_stack_trace_1.FALLBACK_FUNCTION_NAME
|
|
41
|
-
: func.type === model_1.ContractFunctionType.RECEIVE
|
|
42
|
-
? solidity_stack_trace_1.RECEIVE_FUNCTION_NAME
|
|
43
|
-
: func.name;
|
|
44
|
-
return {
|
|
45
|
-
contractName,
|
|
46
|
-
functionName,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
tryToDecodeMessageTrace(messageTrace) {
|
|
52
|
-
if ((0, message_trace_1.isPrecompileTrace)(messageTrace)) {
|
|
53
|
-
return messageTrace;
|
|
54
|
-
}
|
|
55
|
-
return {
|
|
56
|
-
...messageTrace,
|
|
57
|
-
bytecode: this._contractsIdentifier.getBytecodeForCall(messageTrace.code, (0, message_trace_1.isCreateTrace)(messageTrace)),
|
|
58
|
-
steps: messageTrace.steps.map((s) => (0, message_trace_1.isEvmStep)(s) ? s : this.tryToDecodeMessageTrace(s)),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
addBytecode(bytecode) {
|
|
62
|
-
this._contractsIdentifier.addBytecode(bytecode);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
12
|
+
const { VmTraceDecoder, initializeVmTraceDecoder } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
65
13
|
exports.VmTraceDecoder = VmTraceDecoder;
|
|
66
|
-
function
|
|
67
|
-
if (tracingConfig.buildInfos === undefined) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
14
|
+
function initializeVmTraceDecoderWrapper(vmTraceDecoder, tracingConfig) {
|
|
70
15
|
try {
|
|
71
|
-
|
|
72
|
-
const bytecodes = (0, compiler_to_model_1.createModelsAndDecodeBytecodes)(buildInfo.solcVersion, buildInfo.input, buildInfo.output);
|
|
73
|
-
for (const bytecode of bytecodes) {
|
|
74
|
-
if (tracingConfig.ignoreContracts === true &&
|
|
75
|
-
bytecode.contract.name.startsWith("Ignored")) {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
vmTraceDecoder.addBytecode(bytecode);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
16
|
+
initializeVmTraceDecoder(vmTraceDecoder, tracingConfig);
|
|
81
17
|
}
|
|
82
18
|
catch (error) {
|
|
83
19
|
console.warn(chalk_1.default.yellow("The Hardhat Network tracing engine could not be initialized. Run Hardhat with --verbose to learn more."));
|
|
84
|
-
log("Hardhat Network tracing disabled:
|
|
20
|
+
log("Hardhat Network tracing disabled: VmTraceDecoder failed to be initialized. Please report this to help us improve Hardhat.\n", error);
|
|
85
21
|
if (error instanceof Error) {
|
|
86
22
|
reporter_1.Reporter.reportError(error);
|
|
87
23
|
}
|
|
88
24
|
}
|
|
89
25
|
}
|
|
90
|
-
exports.initializeVmTraceDecoder =
|
|
26
|
+
exports.initializeVmTraceDecoder = initializeVmTraceDecoderWrapper;
|
|
91
27
|
//# sourceMappingURL=vm-trace-decoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,kDAA0B;AAC1B,oDAAiD;AAEjD,qDAA8D;AAE9D,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAC;AAEvD,MAAM,EAAE,cAAc,EAAE,wBAAwB,EAAE,GAAG,IAAA,6BAAmB,EACtE,sBAAsB,CACkB,CAAC;AA2BzC,wCAAc;AAzBhB,SAAS,+BAA+B,CACtC,cAA+B,EAC/B,aAA4B;IAE5B,IAAI;QACF,wBAAwB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;KACzD;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,wGAAwG,CACzG,CACF,CAAC;QAEF,GAAG,CACD,6HAA6H,EAC7H,KAAK,CACN,CAAC;QAEF,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,mBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AAKoC,mEAAwB"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Consumes the incoming VM trace events, until an error occurs, to keep track
|
|
5
|
-
* of the last top level message trace/error.
|
|
6
|
-
*/
|
|
7
|
-
export declare class VMTracer {
|
|
8
|
-
tracingSteps: TracingStep[];
|
|
9
|
-
private _messageTraces;
|
|
10
|
-
private _lastError;
|
|
11
|
-
private _maxPrecompileNumber;
|
|
12
|
-
constructor();
|
|
13
|
-
getLastTopLevelMessageTrace(): MessageTrace | undefined;
|
|
14
|
-
getLastError(): Error | undefined;
|
|
15
|
-
private _shouldKeepTracing;
|
|
16
|
-
addBeforeMessage(message: TracingMessage): void;
|
|
17
|
-
addStep(step: TracingStep): void;
|
|
18
|
-
addAfterMessage(result: ExecutionResult): void;
|
|
19
|
-
}
|
|
1
|
+
declare const VmTracer: typeof import("@nomicfoundation/edr").VmTracer;
|
|
2
|
+
export { VmTracer as VMTracer };
|
|
20
3
|
//# sourceMappingURL=vm-tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vm-tracer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":"AAEA,QAAA,MAAQ,QAAQ,gDAE0B,CAAC;AAE3C,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC"}
|
|
@@ -1,154 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VMTracer = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const message_trace_1 = require("./message-trace");
|
|
8
|
-
/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */
|
|
9
|
-
const DUMMY_RETURN_DATA = Buffer.from([]);
|
|
10
|
-
const DUMMY_GAS_USED = 0n;
|
|
11
|
-
/**
|
|
12
|
-
* Consumes the incoming VM trace events, until an error occurs, to keep track
|
|
13
|
-
* of the last top level message trace/error.
|
|
14
|
-
*/
|
|
15
|
-
class VMTracer {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.tracingSteps = [];
|
|
18
|
-
this._messageTraces = [];
|
|
19
|
-
// TODO: temporarily hardcoded to remove the need of using ethereumjs' common and evm here
|
|
20
|
-
this._maxPrecompileNumber = 10;
|
|
21
|
-
}
|
|
22
|
-
getLastTopLevelMessageTrace() {
|
|
23
|
-
return this._messageTraces[0];
|
|
24
|
-
}
|
|
25
|
-
getLastError() {
|
|
26
|
-
return this._lastError;
|
|
27
|
-
}
|
|
28
|
-
_shouldKeepTracing() {
|
|
29
|
-
return this._lastError === undefined;
|
|
30
|
-
}
|
|
31
|
-
addBeforeMessage(message) {
|
|
32
|
-
if (!this._shouldKeepTracing()) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
let trace;
|
|
37
|
-
if (message.depth === 0) {
|
|
38
|
-
this._messageTraces = [];
|
|
39
|
-
this.tracingSteps = [];
|
|
40
|
-
}
|
|
41
|
-
if (message.to === undefined) {
|
|
42
|
-
const createTrace = {
|
|
43
|
-
code: message.data,
|
|
44
|
-
steps: [],
|
|
45
|
-
value: message.value,
|
|
46
|
-
exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS),
|
|
47
|
-
returnData: DUMMY_RETURN_DATA,
|
|
48
|
-
numberOfSubtraces: 0,
|
|
49
|
-
depth: message.depth,
|
|
50
|
-
deployedContract: undefined,
|
|
51
|
-
gasUsed: DUMMY_GAS_USED,
|
|
52
|
-
};
|
|
53
|
-
trace = createTrace;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
const toAsBigInt = (0, ethereumjs_util_1.bytesToBigInt)(message.to);
|
|
57
|
-
if (toAsBigInt > 0 && toAsBigInt <= this._maxPrecompileNumber) {
|
|
58
|
-
const precompileTrace = {
|
|
59
|
-
precompile: Number(toAsBigInt),
|
|
60
|
-
calldata: message.data,
|
|
61
|
-
value: message.value,
|
|
62
|
-
exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS),
|
|
63
|
-
returnData: DUMMY_RETURN_DATA,
|
|
64
|
-
depth: message.depth,
|
|
65
|
-
gasUsed: DUMMY_GAS_USED,
|
|
66
|
-
};
|
|
67
|
-
trace = precompileTrace;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
const codeAddress = message.codeAddress;
|
|
71
|
-
// if we enter here, then `to` is not undefined, therefore
|
|
72
|
-
// `codeAddress` and `code` should be defined
|
|
73
|
-
(0, errors_1.assertHardhatInvariant)(codeAddress !== undefined, "codeAddress should be defined");
|
|
74
|
-
(0, errors_1.assertHardhatInvariant)(message.code !== undefined, "code should be defined");
|
|
75
|
-
const callTrace = {
|
|
76
|
-
code: message.code,
|
|
77
|
-
calldata: message.data,
|
|
78
|
-
steps: [],
|
|
79
|
-
value: message.value,
|
|
80
|
-
exit: new exit_1.Exit(exit_1.ExitCode.SUCCESS),
|
|
81
|
-
returnData: DUMMY_RETURN_DATA,
|
|
82
|
-
address: message.to,
|
|
83
|
-
numberOfSubtraces: 0,
|
|
84
|
-
depth: message.depth,
|
|
85
|
-
gasUsed: DUMMY_GAS_USED,
|
|
86
|
-
codeAddress,
|
|
87
|
-
};
|
|
88
|
-
trace = callTrace;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (this._messageTraces.length > 0) {
|
|
92
|
-
const parentTrace = this._messageTraces[this._messageTraces.length - 1];
|
|
93
|
-
if ((0, message_trace_1.isPrecompileTrace)(parentTrace)) {
|
|
94
|
-
throw new Error("This should not happen: message execution started while a precompile was executing");
|
|
95
|
-
}
|
|
96
|
-
parentTrace.steps.push(trace);
|
|
97
|
-
parentTrace.numberOfSubtraces += 1;
|
|
98
|
-
}
|
|
99
|
-
this._messageTraces.push(trace);
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
this._lastError = error;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
addStep(step) {
|
|
106
|
-
if (!this._shouldKeepTracing()) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
this.tracingSteps.push(step);
|
|
110
|
-
try {
|
|
111
|
-
const trace = this._messageTraces[this._messageTraces.length - 1];
|
|
112
|
-
if ((0, message_trace_1.isPrecompileTrace)(trace)) {
|
|
113
|
-
throw new Error("This should not happen: step event fired while a precompile was executing");
|
|
114
|
-
}
|
|
115
|
-
trace.steps.push({ pc: Number(step.pc) });
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
this._lastError = error;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
addAfterMessage(result) {
|
|
122
|
-
if (!this._shouldKeepTracing()) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
try {
|
|
126
|
-
const trace = this._messageTraces[this._messageTraces.length - 1];
|
|
127
|
-
trace.gasUsed = result.result.gasUsed;
|
|
128
|
-
const executionResult = result.result;
|
|
129
|
-
if ((0, message_trace_1.isSuccessResult)(executionResult)) {
|
|
130
|
-
trace.exit = exit_1.Exit.fromEdrSuccessReason(executionResult.reason);
|
|
131
|
-
trace.returnData = executionResult.output.returnValue;
|
|
132
|
-
if ((0, message_trace_1.isCreateTrace)(trace)) {
|
|
133
|
-
trace.deployedContract = executionResult.output.address;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else if ((0, message_trace_1.isHaltResult)(executionResult)) {
|
|
137
|
-
trace.exit = exit_1.Exit.fromEdrExceptionalHalt(executionResult.reason);
|
|
138
|
-
trace.returnData = Buffer.from([]);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
trace.exit = new exit_1.Exit(exit_1.ExitCode.REVERT);
|
|
142
|
-
trace.returnData = executionResult.output;
|
|
143
|
-
}
|
|
144
|
-
if (this._messageTraces.length > 1) {
|
|
145
|
-
this._messageTraces.pop();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
this._lastError = error;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
exports.VMTracer = VMTracer;
|
|
4
|
+
const napi_rs_1 = require("../../../common/napi-rs");
|
|
5
|
+
const { VmTracer } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
|
|
6
|
+
exports.VMTracer = VmTracer;
|
|
154
7
|
//# sourceMappingURL=vm-tracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vm-tracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-tracer.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAE9D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAmB,EACtC,sBAAsB,CACkB,CAAC;AAEtB,4BAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat",
|
|
3
|
-
"version": "2.22.
|
|
3
|
+
"version": "2.22.12",
|
|
4
4
|
"author": "Nomic Labs LLC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://hardhat.org",
|
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
"time-require": "^0.1.2",
|
|
80
80
|
"ts-node": "^10.8.0",
|
|
81
81
|
"typescript": "~5.0.0",
|
|
82
|
-
"@nomicfoundation/eslint-plugin-
|
|
83
|
-
"@nomicfoundation/eslint-plugin-
|
|
82
|
+
"@nomicfoundation/eslint-plugin-slow-imports": "^1.0.0",
|
|
83
|
+
"@nomicfoundation/eslint-plugin-hardhat-internal-rules": "^1.0.2"
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
86
|
"@ethersproject/abi": "^5.1.2",
|
|
87
87
|
"@metamask/eth-sig-util": "^4.0.0",
|
|
88
|
-
"@nomicfoundation/edr": "^0.
|
|
88
|
+
"@nomicfoundation/edr": "^0.6.1",
|
|
89
89
|
"@nomicfoundation/ethereumjs-common": "4.0.4",
|
|
90
90
|
"@nomicfoundation/ethereumjs-tx": "5.0.4",
|
|
91
91
|
"@nomicfoundation/ethereumjs-util": "9.0.4",
|