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.
Files changed (90) hide show
  1. package/internal/hardhat-network/provider/provider.d.ts +2 -3
  2. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  3. package/internal/hardhat-network/provider/provider.js +5 -19
  4. package/internal/hardhat-network/provider/provider.js.map +1 -1
  5. package/internal/hardhat-network/provider/return-data.d.ts +2 -15
  6. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  7. package/internal/hardhat-network/provider/return-data.js +2 -50
  8. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  9. package/internal/hardhat-network/provider/vm/exit.d.ts +2 -20
  10. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
  11. package/internal/hardhat-network/provider/vm/exit.js +3 -78
  12. package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
  13. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +2 -3
  14. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
  15. package/internal/hardhat-network/stack-traces/compiler-to-model.js +2 -351
  16. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  17. package/internal/hardhat-network/stack-traces/debug.d.ts +2 -7
  18. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
  19. package/internal/hardhat-network/stack-traces/debug.js +3 -143
  20. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  21. package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
  22. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  23. package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
  24. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  25. package/internal/hardhat-network/stack-traces/message-trace.d.ts +2 -51
  26. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  27. package/internal/hardhat-network/stack-traces/message-trace.js +0 -46
  28. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  29. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  30. package/internal/hardhat-network/stack-traces/solidity-errors.js +58 -53
  31. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  32. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
  33. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  34. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
  35. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  36. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +2 -13
  37. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  38. package/internal/hardhat-network/stack-traces/solidityTracer.js +2 -162
  39. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  40. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +4 -15
  41. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
  42. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +6 -70
  43. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  44. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +2 -19
  45. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  46. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -150
  47. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  48. package/package.json +4 -4
  49. package/src/internal/hardhat-network/provider/provider.ts +11 -24
  50. package/src/internal/hardhat-network/provider/return-data.ts +5 -73
  51. package/src/internal/hardhat-network/provider/vm/exit.ts +4 -92
  52. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +5 -697
  53. package/src/internal/hardhat-network/stack-traces/debug.ts +5 -218
  54. package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
  55. package/src/internal/hardhat-network/stack-traces/message-trace.ts +5 -122
  56. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -15
  57. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
  58. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -253
  59. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +15 -108
  60. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +5 -206
  61. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
  62. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
  63. package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
  64. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
  65. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
  66. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
  67. package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
  68. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
  69. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
  70. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
  71. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
  72. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
  73. package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
  74. package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
  75. package/internal/hardhat-network/stack-traces/model.js +0 -328
  76. package/internal/hardhat-network/stack-traces/model.js.map +0 -1
  77. package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
  78. package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
  79. package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
  80. package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
  81. package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
  82. package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
  83. package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
  84. package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
  85. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
  86. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
  87. package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
  88. package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
  89. package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
  90. 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
- var StackTraceEntryType;
5
- (function (StackTraceEntryType) {
6
- StackTraceEntryType[StackTraceEntryType["CALLSTACK_ENTRY"] = 0] = "CALLSTACK_ENTRY";
7
- StackTraceEntryType[StackTraceEntryType["UNRECOGNIZED_CREATE_CALLSTACK_ENTRY"] = 1] = "UNRECOGNIZED_CREATE_CALLSTACK_ENTRY";
8
- StackTraceEntryType[StackTraceEntryType["UNRECOGNIZED_CONTRACT_CALLSTACK_ENTRY"] = 2] = "UNRECOGNIZED_CONTRACT_CALLSTACK_ENTRY";
9
- StackTraceEntryType[StackTraceEntryType["PRECOMPILE_ERROR"] = 3] = "PRECOMPILE_ERROR";
10
- StackTraceEntryType[StackTraceEntryType["REVERT_ERROR"] = 4] = "REVERT_ERROR";
11
- StackTraceEntryType[StackTraceEntryType["PANIC_ERROR"] = 5] = "PANIC_ERROR";
12
- StackTraceEntryType[StackTraceEntryType["CUSTOM_ERROR"] = 6] = "CUSTOM_ERROR";
13
- StackTraceEntryType[StackTraceEntryType["FUNCTION_NOT_PAYABLE_ERROR"] = 7] = "FUNCTION_NOT_PAYABLE_ERROR";
14
- StackTraceEntryType[StackTraceEntryType["INVALID_PARAMS_ERROR"] = 8] = "INVALID_PARAMS_ERROR";
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":";;;AAIA,IAAY,mBA2BX;AA3BD,WAAY,mBAAmB;IAC7B,mFAAe,CAAA;IACf,2HAAmC,CAAA;IACnC,+HAAqC,CAAA;IACrC,qFAAgB,CAAA;IAChB,6EAAY,CAAA;IACZ,2EAAW,CAAA;IACX,6EAAY,CAAA;IACZ,yGAA0B,CAAA;IAC1B,6FAAoB,CAAA;IACpB,yGAA0B,CAAA;IAC1B,wIAAyC,CAAA;IACzC,8IAA4C,CAAA;IAC5C,wHAAiC,CAAA;IACjC,gGAAqB,CAAA;IACrB,sHAAgC,CAAA;IAChC,wFAAiB,CAAA;IACjB,wGAAyB,CAAA;IACzB,wGAAyB,CAAA;IACzB,4GAA2B,CAAA;IAC3B,gGAAqB,CAAA;IACrB,yEAAyE;IACzE,kEAAkE;IAClE,sHAAgC,CAAA;IAChC,sGAAwB,CAAA;IACxB,wHAAiC,CAAA;IACjC,0HAAkC,CAAA;AACpC,CAAC,EA3BW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QA2B9B;AAEY,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,yBAAyB,GAAG,aAAa,CAAC;AAC1C,QAAA,0BAA0B,GAAG,yBAAyB,CAAC;AACvD,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,wBAAwB,GAAG,cAAc,CAAC;AAC1C,QAAA,0BAA0B,GAAG,wBAAwB,CAAC"}
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
- import { MessageTrace } from "./message-trace";
2
- import { SolidityStackTrace } from "./solidity-stack-trace";
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":"AAcA,OAAO,EAWL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAGnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAuB;IAEtC,aAAa,CAClB,wBAAwB,EAAE,YAAY,GACrC,kBAAkB;IAoBrB,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,iCAAiC;IA2DzC,OAAO,CAAC,2BAA2B;IAanC,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,qBAAqB;IAwE7B,OAAO,CAAC,gBAAgB;CAazB"}
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 ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
5
- const return_data_1 = require("../provider/return-data");
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":"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"}
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
- /// <reference types="node" />
1
+ import type { VmTraceDecoder as VmTraceDecoderT } from "@nomicfoundation/edr";
2
2
  import { TracingConfig } from "../provider/node-types";
3
- import { ContractsIdentifier } from "./contracts-identifier";
4
- import { MessageTrace } from "./message-trace";
5
- import { Bytecode } from "./model";
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":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAIL,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAwB,MAAM,SAAS,CAAC;AAUzD,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,mBAAmB;IAE/D,kCAAkC,CACvC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAyC3C,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IAiBjE,WAAW,CAAC,QAAQ,EAAE,QAAQ;CAGtC;AAED,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,QAyC7B"}
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 compiler_to_model_1 = require("./compiler-to-model");
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
- class VmTraceDecoder {
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 initializeVmTraceDecoder(vmTraceDecoder, tracingConfig) {
67
- if (tracingConfig.buildInfos === undefined) {
68
- return;
69
- }
14
+ function initializeVmTraceDecoderWrapper(vmTraceDecoder, tracingConfig) {
70
15
  try {
71
- for (const buildInfo of tracingConfig.buildInfos) {
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: ContractsIdentifier failed to be initialized. Please report this to help us improve Hardhat.\n", error);
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 = 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":";;;;;;AAAA,kDAA0B;AAC1B,kDAA0B;AAC1B,oDAAiD;AAEjD,2DAAqE;AAErE,mDAKyB;AACzB,mCAAyD;AACzD,iEAKgC;AAEhC,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAC;AAEvD,MAAa,cAAc;IACzB,YAA6B,oBAAyC;QAAzC,yBAAoB,GAApB,oBAAoB,CAAqB;IAAG,CAAC;IAEnE,kCAAkC,CACvC,IAAY,EACZ,QAAiB;QAEjB,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAC3D,IAAI,EACJ,QAAQ,CACT,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,iDAA0B,CAAC;QAE3E,IAAI,QAAQ,EAAE;YACZ,OAAO;gBACL,YAAY;aACb,CAAC;SACH;aAAM;YACL,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,OAAO;oBACL,YAAY;oBACZ,YAAY,EAAE,EAAE;iBACjB,CAAC;aACH;iBAAM;gBACL,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACrB,CAAC;gBAEF,MAAM,YAAY,GAChB,IAAI,KAAK,SAAS;oBAChB,CAAC,CAAC,iDAA0B;oBAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,QAAQ;wBAC7C,CAAC,CAAC,6CAAsB;wBACxB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,OAAO;4BAC5C,CAAC,CAAC,4CAAqB;4BACvB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEhB,OAAO;oBACL,YAAY;oBACZ,YAAY;iBACb,CAAC;aACH;SACF;IACH,CAAC;IAEM,uBAAuB,CAAC,YAA0B;QACvD,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,EAAE;YACnC,OAAO,YAAY,CAAC;SACrB;QAED,OAAO;YACL,GAAG,YAAY;YACf,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CACpD,YAAY,CAAC,IAAI,EACjB,IAAA,6BAAa,EAAC,YAAY,CAAC,CAC5B;YACD,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,IAAA,yBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CACnD;SACF,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF;AAnED,wCAmEC;AAED,SAAgB,wBAAwB,CACtC,cAA8B,EAC9B,aAA4B;IAE5B,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE;QAC1C,OAAO;KACR;IAED,IAAI;QACF,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,UAAU,EAAE;YAChD,MAAM,SAAS,GAAG,IAAA,kDAA8B,EAC9C,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,CACjB,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,IACE,aAAa,CAAC,eAAe,KAAK,IAAI;oBACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC5C;oBACA,SAAS;iBACV;gBAED,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,wGAAwG,CACzG,CACF,CAAC;QAEF,GAAG,CACD,kIAAkI,EAClI,KAAK,CACN,CAAC;QAEF,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,mBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AA3CD,4DA2CC"}
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
- import type { ExecutionResult, TracingMessage, TracingStep } from "@nomicfoundation/edr";
2
- import { MessageTrace } from "./message-trace";
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":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAOL,YAAY,EAEb,MAAM,iBAAiB,CAAC;AAOzB;;;GAGG;AACH,qBAAa,QAAQ;IACZ,YAAY,EAAE,WAAW,EAAE,CAAM;IAExC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,oBAAoB,CAAC;;IAOtB,2BAA2B,IAAI,YAAY,GAAG,SAAS;IAIvD,YAAY,IAAI,KAAK,GAAG,SAAS;IAIxC,OAAO,CAAC,kBAAkB;IAInB,gBAAgB,CAAC,OAAO,EAAE,cAAc;IA6FxC,OAAO,CAAC,IAAI,EAAE,WAAW;IAsBzB,eAAe,CAAC,MAAM,EAAE,eAAe;CAoC/C"}
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 ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
5
- const errors_1 = require("../../core/errors");
6
- const exit_1 = require("../provider/vm/exit");
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":"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"}
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.11",
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-hardhat-internal-rules": "^1.0.2",
83
- "@nomicfoundation/eslint-plugin-slow-imports": "^1.0.0"
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.5.2",
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",