hardhat 2.22.10 → 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 (129) hide show
  1. package/console.sol +1 -1
  2. package/internal/cli/project-creation.d.ts +1 -1
  3. package/internal/cli/project-creation.js +1 -1
  4. package/internal/core/providers/lazy-initialization.d.ts.map +1 -1
  5. package/internal/core/providers/lazy-initialization.js +10 -10
  6. package/internal/core/providers/lazy-initialization.js.map +1 -1
  7. package/internal/hardhat-network/jsonrpc/handler.d.ts.map +1 -1
  8. package/internal/hardhat-network/jsonrpc/handler.js +2 -1
  9. package/internal/hardhat-network/jsonrpc/handler.js.map +1 -1
  10. package/internal/hardhat-network/provider/provider.d.ts +2 -3
  11. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  12. package/internal/hardhat-network/provider/provider.js +5 -19
  13. package/internal/hardhat-network/provider/provider.js.map +1 -1
  14. package/internal/hardhat-network/provider/return-data.d.ts +2 -15
  15. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  16. package/internal/hardhat-network/provider/return-data.js +2 -50
  17. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  18. package/internal/hardhat-network/provider/vm/exit.d.ts +2 -20
  19. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
  20. package/internal/hardhat-network/provider/vm/exit.js +3 -78
  21. package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
  22. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +2 -3
  23. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
  24. package/internal/hardhat-network/stack-traces/compiler-to-model.js +2 -351
  25. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  26. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts +2 -1
  27. package/internal/hardhat-network/stack-traces/consoleLogger.d.ts.map +1 -1
  28. package/internal/hardhat-network/stack-traces/consoleLogger.js +2 -1
  29. package/internal/hardhat-network/stack-traces/consoleLogger.js.map +1 -1
  30. package/internal/hardhat-network/stack-traces/constants.d.ts +1 -1
  31. package/internal/hardhat-network/stack-traces/constants.js +1 -1
  32. package/internal/hardhat-network/stack-traces/debug.d.ts +2 -7
  33. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
  34. package/internal/hardhat-network/stack-traces/debug.js +3 -143
  35. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  36. package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
  37. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  38. package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
  39. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  40. package/internal/hardhat-network/stack-traces/logger.js +596 -596
  41. package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
  42. package/internal/hardhat-network/stack-traces/message-trace.d.ts +2 -51
  43. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  44. package/internal/hardhat-network/stack-traces/message-trace.js +0 -46
  45. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  46. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  47. package/internal/hardhat-network/stack-traces/solidity-errors.js +58 -53
  48. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  49. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
  50. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  51. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
  52. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  53. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +2 -13
  54. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  55. package/internal/hardhat-network/stack-traces/solidityTracer.js +2 -162
  56. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  57. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +4 -15
  58. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
  59. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +6 -70
  60. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  61. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +2 -19
  62. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  63. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -150
  64. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  65. package/internal/solidity/compiler/solc-info.d.ts.map +1 -1
  66. package/internal/solidity/compiler/solc-info.js +3 -0
  67. package/internal/solidity/compiler/solc-info.js.map +1 -1
  68. package/package.json +6 -5
  69. package/sample-projects/javascript/contracts/Lock.sol +1 -1
  70. package/sample-projects/javascript/hardhat.config.js +1 -1
  71. package/sample-projects/javascript/ignition/modules/Lock.js +3 -0
  72. package/sample-projects/javascript-esm/contracts/Lock.sol +1 -1
  73. package/sample-projects/javascript-esm/hardhat.config.cjs +1 -1
  74. package/sample-projects/javascript-esm/ignition/modules/Lock.js +3 -0
  75. package/sample-projects/typescript/contracts/Lock.sol +1 -1
  76. package/sample-projects/typescript/hardhat.config.ts +1 -1
  77. package/sample-projects/typescript/ignition/modules/Lock.ts +3 -0
  78. package/sample-projects/typescript-viem/contracts/Lock.sol +1 -1
  79. package/sample-projects/typescript-viem/hardhat.config.ts +1 -1
  80. package/sample-projects/typescript-viem/ignition/modules/Lock.ts +3 -0
  81. package/src/internal/cli/project-creation.ts +1 -1
  82. package/src/internal/core/providers/lazy-initialization.ts +13 -13
  83. package/src/internal/hardhat-network/jsonrpc/handler.ts +2 -1
  84. package/src/internal/hardhat-network/provider/provider.ts +11 -24
  85. package/src/internal/hardhat-network/provider/return-data.ts +5 -73
  86. package/src/internal/hardhat-network/provider/vm/exit.ts +4 -92
  87. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +5 -697
  88. package/src/internal/hardhat-network/stack-traces/consoleLogger.ts +2 -1
  89. package/src/internal/hardhat-network/stack-traces/constants.ts +1 -1
  90. package/src/internal/hardhat-network/stack-traces/debug.ts +5 -218
  91. package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
  92. package/src/internal/hardhat-network/stack-traces/logger.ts +596 -596
  93. package/src/internal/hardhat-network/stack-traces/message-trace.ts +5 -122
  94. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -15
  95. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
  96. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -253
  97. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +15 -108
  98. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +5 -206
  99. package/src/internal/solidity/compiler/solc-info.ts +3 -0
  100. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
  101. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
  102. package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
  103. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
  104. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
  105. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
  106. package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
  107. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
  108. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
  109. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
  110. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
  111. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
  112. package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
  113. package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
  114. package/internal/hardhat-network/stack-traces/model.js +0 -328
  115. package/internal/hardhat-network/stack-traces/model.js.map +0 -1
  116. package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
  117. package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
  118. package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
  119. package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
  120. package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
  121. package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
  122. package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
  123. package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
  124. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
  125. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
  126. package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
  127. package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
  128. package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
  129. package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
@@ -1,158 +1,7 @@
1
- import { ReturnData } from "../provider/return-data";
2
- import { ContractFunctionType } from "./model";
3
- export declare enum StackTraceEntryType {
4
- CALLSTACK_ENTRY = 0,
5
- UNRECOGNIZED_CREATE_CALLSTACK_ENTRY = 1,
6
- UNRECOGNIZED_CONTRACT_CALLSTACK_ENTRY = 2,
7
- PRECOMPILE_ERROR = 3,
8
- REVERT_ERROR = 4,
9
- PANIC_ERROR = 5,
10
- CUSTOM_ERROR = 6,
11
- FUNCTION_NOT_PAYABLE_ERROR = 7,
12
- INVALID_PARAMS_ERROR = 8,
13
- FALLBACK_NOT_PAYABLE_ERROR = 9,
14
- FALLBACK_NOT_PAYABLE_AND_NO_RECEIVE_ERROR = 10,
15
- UNRECOGNIZED_FUNCTION_WITHOUT_FALLBACK_ERROR = 11,
16
- MISSING_FALLBACK_OR_RECEIVE_ERROR = 12,
17
- RETURNDATA_SIZE_ERROR = 13,
18
- NONCONTRACT_ACCOUNT_CALLED_ERROR = 14,
19
- CALL_FAILED_ERROR = 15,
20
- DIRECT_LIBRARY_CALL_ERROR = 16,
21
- UNRECOGNIZED_CREATE_ERROR = 17,
22
- UNRECOGNIZED_CONTRACT_ERROR = 18,
23
- OTHER_EXECUTION_ERROR = 19,
24
- UNMAPPED_SOLC_0_6_3_REVERT_ERROR = 20,
25
- CONTRACT_TOO_LARGE_ERROR = 21,
26
- INTERNAL_FUNCTION_CALLSTACK_ENTRY = 22,
27
- CONTRACT_CALL_RUN_OUT_OF_GAS_ERROR = 23
28
- }
29
- export declare const FALLBACK_FUNCTION_NAME = "<fallback>";
30
- export declare const RECEIVE_FUNCTION_NAME = "<receive>";
31
- export declare const CONSTRUCTOR_FUNCTION_NAME = "constructor";
32
- export declare const UNRECOGNIZED_FUNCTION_NAME = "<unrecognized-selector>";
33
- export declare const UNKNOWN_FUNCTION_NAME = "<unknown>";
34
- export declare const PRECOMPILE_FUNCTION_NAME = "<precompile>";
35
- export declare const UNRECOGNIZED_CONTRACT_NAME = "<UnrecognizedContract>";
36
- export interface SourceReference {
37
- sourceName: string;
38
- sourceContent: string;
39
- contract?: string;
40
- function?: string;
41
- line: number;
42
- range: [number, number];
43
- }
44
- export interface CallstackEntryStackTraceEntry {
45
- type: StackTraceEntryType.CALLSTACK_ENTRY;
46
- sourceReference: SourceReference;
47
- functionType: ContractFunctionType;
48
- }
49
- export interface UnrecognizedCreateCallstackEntryStackTraceEntry {
50
- type: StackTraceEntryType.UNRECOGNIZED_CREATE_CALLSTACK_ENTRY;
51
- sourceReference?: undefined;
52
- }
53
- export interface UnrecognizedContractCallstackEntryStackTraceEntry {
54
- type: StackTraceEntryType.UNRECOGNIZED_CONTRACT_CALLSTACK_ENTRY;
55
- address: Uint8Array;
56
- sourceReference?: undefined;
57
- }
58
- export interface PrecompileErrorStackTraceEntry {
59
- type: StackTraceEntryType.PRECOMPILE_ERROR;
60
- precompile: number;
61
- sourceReference?: undefined;
62
- }
63
- export interface RevertErrorStackTraceEntry {
64
- type: StackTraceEntryType.REVERT_ERROR;
65
- message: ReturnData;
66
- sourceReference: SourceReference;
67
- isInvalidOpcodeError: boolean;
68
- }
69
- export interface PanicErrorStackTraceEntry {
70
- type: StackTraceEntryType.PANIC_ERROR;
71
- errorCode: bigint;
72
- sourceReference?: SourceReference;
73
- }
74
- export interface CustomErrorStackTraceEntry {
75
- type: StackTraceEntryType.CUSTOM_ERROR;
76
- message: string;
77
- sourceReference: SourceReference;
78
- }
79
- export interface UnmappedSolc063RevertErrorStackTraceEntry {
80
- type: StackTraceEntryType.UNMAPPED_SOLC_0_6_3_REVERT_ERROR;
81
- sourceReference?: SourceReference;
82
- }
83
- export interface FunctionNotPayableErrorStackTraceEntry {
84
- type: StackTraceEntryType.FUNCTION_NOT_PAYABLE_ERROR;
85
- value: bigint;
86
- sourceReference: SourceReference;
87
- }
88
- export interface InvalidParamsErrorStackTraceEntry {
89
- type: StackTraceEntryType.INVALID_PARAMS_ERROR;
90
- sourceReference: SourceReference;
91
- }
92
- export interface FallbackNotPayableErrorStackTraceEntry {
93
- type: StackTraceEntryType.FALLBACK_NOT_PAYABLE_ERROR;
94
- value: bigint;
95
- sourceReference: SourceReference;
96
- }
97
- export interface FallbackNotPayableAndNoReceiveErrorStackTraceEntry {
98
- type: StackTraceEntryType.FALLBACK_NOT_PAYABLE_AND_NO_RECEIVE_ERROR;
99
- value: bigint;
100
- sourceReference: SourceReference;
101
- }
102
- export interface UnrecognizedFunctionWithoutFallbackErrorStackTraceEntry {
103
- type: StackTraceEntryType.UNRECOGNIZED_FUNCTION_WITHOUT_FALLBACK_ERROR;
104
- sourceReference: SourceReference;
105
- }
106
- export interface MissingFallbackOrReceiveErrorStackTraceEntry {
107
- type: StackTraceEntryType.MISSING_FALLBACK_OR_RECEIVE_ERROR;
108
- sourceReference: SourceReference;
109
- }
110
- export interface ReturndataSizeErrorStackTraceEntry {
111
- type: StackTraceEntryType.RETURNDATA_SIZE_ERROR;
112
- sourceReference: SourceReference;
113
- }
114
- export interface NonContractAccountCalledErrorStackTraceEntry {
115
- type: StackTraceEntryType.NONCONTRACT_ACCOUNT_CALLED_ERROR;
116
- sourceReference: SourceReference;
117
- }
118
- export interface CallFailedErrorStackTraceEntry {
119
- type: StackTraceEntryType.CALL_FAILED_ERROR;
120
- sourceReference: SourceReference;
121
- }
122
- export interface DirectLibraryCallErrorStackTraceEntry {
123
- type: StackTraceEntryType.DIRECT_LIBRARY_CALL_ERROR;
124
- sourceReference: SourceReference;
125
- }
126
- export interface UnrecognizedCreateErrorStackTraceEntry {
127
- type: StackTraceEntryType.UNRECOGNIZED_CREATE_ERROR;
128
- message: ReturnData;
129
- sourceReference?: undefined;
130
- isInvalidOpcodeError: boolean;
131
- }
132
- export interface UnrecognizedContractErrorStackTraceEntry {
133
- type: StackTraceEntryType.UNRECOGNIZED_CONTRACT_ERROR;
134
- address: Uint8Array;
135
- message: ReturnData;
136
- sourceReference?: undefined;
137
- isInvalidOpcodeError: boolean;
138
- }
139
- export interface OtherExecutionErrorStackTraceEntry {
140
- type: StackTraceEntryType.OTHER_EXECUTION_ERROR;
141
- sourceReference?: SourceReference;
142
- }
143
- export interface ContractTooLargeErrorStackTraceEntry {
144
- type: StackTraceEntryType.CONTRACT_TOO_LARGE_ERROR;
145
- sourceReference?: SourceReference;
146
- }
147
- export interface InternalFunctionCallStackEntry {
148
- type: StackTraceEntryType.INTERNAL_FUNCTION_CALLSTACK_ENTRY;
149
- pc: number;
150
- sourceReference: SourceReference;
151
- }
152
- export interface ContractCallRunOutOfGasError {
153
- type: StackTraceEntryType.CONTRACT_CALL_RUN_OUT_OF_GAS_ERROR;
154
- sourceReference?: SourceReference;
155
- }
1
+ import type { SourceReference, CallstackEntryStackTraceEntry, UnrecognizedCreateCallstackEntryStackTraceEntry, UnrecognizedContractCallstackEntryStackTraceEntry, PrecompileErrorStackTraceEntry, RevertErrorStackTraceEntry, PanicErrorStackTraceEntry, CustomErrorStackTraceEntry, FunctionNotPayableErrorStackTraceEntry, InvalidParamsErrorStackTraceEntry, FallbackNotPayableErrorStackTraceEntry, FallbackNotPayableAndNoReceiveErrorStackTraceEntry, UnrecognizedFunctionWithoutFallbackErrorStackTraceEntry, MissingFallbackOrReceiveErrorStackTraceEntry, ReturndataSizeErrorStackTraceEntry, NonContractAccountCalledErrorStackTraceEntry, CallFailedErrorStackTraceEntry, DirectLibraryCallErrorStackTraceEntry, UnrecognizedCreateErrorStackTraceEntry, UnrecognizedContractErrorStackTraceEntry, OtherExecutionErrorStackTraceEntry, UnmappedSolc063RevertErrorStackTraceEntry, ContractTooLargeErrorStackTraceEntry, InternalFunctionCallStackEntry, ContractCallRunOutOfGasError } from "@nomicfoundation/edr";
2
+ declare const StackTraceEntryType: typeof import("@nomicfoundation/edr").StackTraceEntryType, stackTraceEntryTypeToString: typeof import("@nomicfoundation/edr").stackTraceEntryTypeToString, FALLBACK_FUNCTION_NAME: string, RECEIVE_FUNCTION_NAME: string, CONSTRUCTOR_FUNCTION_NAME: string, UNRECOGNIZED_FUNCTION_NAME: string, UNKNOWN_FUNCTION_NAME: string, PRECOMPILE_FUNCTION_NAME: string, UNRECOGNIZED_CONTRACT_NAME: string;
3
+ export { SourceReference, StackTraceEntryType, stackTraceEntryTypeToString, FALLBACK_FUNCTION_NAME, RECEIVE_FUNCTION_NAME, CONSTRUCTOR_FUNCTION_NAME, UNRECOGNIZED_FUNCTION_NAME, UNKNOWN_FUNCTION_NAME, PRECOMPILE_FUNCTION_NAME, UNRECOGNIZED_CONTRACT_NAME, };
4
+ export type { CallstackEntryStackTraceEntry, UnrecognizedCreateCallstackEntryStackTraceEntry, UnrecognizedContractCallstackEntryStackTraceEntry, PrecompileErrorStackTraceEntry, RevertErrorStackTraceEntry, PanicErrorStackTraceEntry, CustomErrorStackTraceEntry, FunctionNotPayableErrorStackTraceEntry, InvalidParamsErrorStackTraceEntry, FallbackNotPayableErrorStackTraceEntry, FallbackNotPayableAndNoReceiveErrorStackTraceEntry, UnrecognizedFunctionWithoutFallbackErrorStackTraceEntry, MissingFallbackOrReceiveErrorStackTraceEntry, ReturndataSizeErrorStackTraceEntry, NonContractAccountCalledErrorStackTraceEntry, CallFailedErrorStackTraceEntry, DirectLibraryCallErrorStackTraceEntry, UnrecognizedCreateErrorStackTraceEntry, UnrecognizedContractErrorStackTraceEntry, OtherExecutionErrorStackTraceEntry, UnmappedSolc063RevertErrorStackTraceEntry, ContractTooLargeErrorStackTraceEntry, InternalFunctionCallStackEntry, ContractCallRunOutOfGasError, };
156
5
  export type SolidityStackTraceEntry = CallstackEntryStackTraceEntry | UnrecognizedCreateCallstackEntryStackTraceEntry | UnrecognizedContractCallstackEntryStackTraceEntry | PrecompileErrorStackTraceEntry | RevertErrorStackTraceEntry | PanicErrorStackTraceEntry | CustomErrorStackTraceEntry | FunctionNotPayableErrorStackTraceEntry | InvalidParamsErrorStackTraceEntry | FallbackNotPayableErrorStackTraceEntry | FallbackNotPayableAndNoReceiveErrorStackTraceEntry | UnrecognizedFunctionWithoutFallbackErrorStackTraceEntry | MissingFallbackOrReceiveErrorStackTraceEntry | ReturndataSizeErrorStackTraceEntry | NonContractAccountCalledErrorStackTraceEntry | CallFailedErrorStackTraceEntry | DirectLibraryCallErrorStackTraceEntry | UnrecognizedCreateErrorStackTraceEntry | UnrecognizedContractErrorStackTraceEntry | OtherExecutionErrorStackTraceEntry | UnmappedSolc063RevertErrorStackTraceEntry | ContractTooLargeErrorStackTraceEntry | InternalFunctionCallStackEntry | ContractCallRunOutOfGasError;
157
6
  export type SolidityStackTrace = SolidityStackTraceEntry[];
158
7
  //# sourceMappingURL=solidity-stack-trace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solidity-stack-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solidity-stack-trace.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,6BAA6B,EAC7B,+CAA+C,EAC/C,iDAAiD,EACjD,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,sCAAsC,EACtC,iCAAiC,EACjC,sCAAsC,EACtC,kDAAkD,EAClD,uDAAuD,EACvD,4CAA4C,EAC5C,kCAAkC,EAClC,4CAA4C,EAC5C,8BAA8B,EAC9B,qCAAqC,EACrC,sCAAsC,EACtC,wCAAwC,EACxC,kCAAkC,EAClC,yCAAyC,EACzC,oCAAoC,EACpC,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,sBAAsB,CAAC;AAI9B,QAAA,MACE,mBAAmB,6DACnB,2BAA2B,qEAC3B,sBAAsB,UACtB,qBAAqB,UACrB,yBAAyB,UACzB,0BAA0B,UAC1B,qBAAqB,UACrB,wBAAwB,UACxB,0BAA0B,QAGc,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,GAC3B,CAAC;AAEF,YAAY,EACV,6BAA6B,EAC7B,+CAA+C,EAC/C,iDAAiD,EACjD,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,sCAAsC,EACtC,iCAAiC,EACjC,sCAAsC,EACtC,kDAAkD,EAClD,uDAAuD,EACvD,4CAA4C,EAC5C,kCAAkC,EAClC,4CAA4C,EAC5C,8BAA8B,EAC9B,qCAAqC,EACrC,sCAAsC,EACtC,wCAAwC,EACxC,kCAAkC,EAClC,yCAAyC,EACzC,oCAAoC,EACpC,8BAA8B,EAC9B,4BAA4B,GAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B,6BAA6B,GAC7B,+CAA+C,GAC/C,iDAAiD,GACjD,8BAA8B,GAC9B,0BAA0B,GAC1B,yBAAyB,GACzB,0BAA0B,GAC1B,sCAAsC,GACtC,iCAAiC,GACjC,sCAAsC,GACtC,kDAAkD,GAClD,uDAAuD,GACvD,4CAA4C,GAC5C,kCAAkC,GAClC,4CAA4C,GAC5C,8BAA8B,GAC9B,qCAAqC,GACrC,sCAAsC,GACtC,wCAAwC,GACxC,kCAAkC,GAClC,yCAAyC,GACzC,oCAAoC,GACpC,8BAA8B,GAC9B,4BAA4B,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,EAAE,CAAC"}
@@ -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":"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"}
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"}