hardhat 2.22.11 → 2.22.13
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/logger.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/logger.js +0 -221
- package/internal/hardhat-network/stack-traces/logger.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 +2 -2
- 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/logger.ts +0 -221
- 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,158 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
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":"AAAA,OAAO,
|
|
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
|
-
|
|
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"}
|