hardhat 2.12.1-ir.0 → 2.12.1
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/builtin-tasks/compile.js +2 -2
- package/internal/core/config/config-loading.js +6 -16
- package/internal/core/config/config-loading.js.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/debug.js +2 -6
- package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/error-inferrer.js +33 -70
- package/internal/hardhat-network/stack-traces/error-inferrer.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js +1 -1
- package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +1 -1
- package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
- package/internal/hardhat-network/stack-traces/solidityTracer.js +0 -13
- package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
- package/internal/solidity/compiler/downloader.d.ts.map +1 -1
- package/internal/solidity/compiler/downloader.js +10 -12
- package/internal/solidity/compiler/downloader.js.map +1 -1
- package/package.json +2 -1
- package/src/builtin-tasks/compile.ts +2 -2
- package/src/internal/core/config/config-loading.ts +10 -25
- package/src/internal/hardhat-network/stack-traces/debug.ts +2 -9
- package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +58 -146
- package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +1 -1
- package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +0 -13
- package/src/internal/solidity/compiler/downloader.ts +11 -11
- package/src/types/artifacts.ts +0 -1
- package/types/artifacts.d.ts +0 -1
- package/types/artifacts.d.ts.map +1 -1
package/builtin-tasks/compile.js
CHANGED
|
@@ -115,10 +115,10 @@ const DEFAULT_CONCURRENCY_LEVEL = Math.max(os_1.default.cpus().length - 1, 1);
|
|
|
115
115
|
*
|
|
116
116
|
* This is the right task to override to change the compiler configuration.
|
|
117
117
|
* For example, if you want to change the compiler settings when targetting
|
|
118
|
-
*
|
|
118
|
+
* goerli, you could do something like this:
|
|
119
119
|
*
|
|
120
120
|
* const compilationJob = await runSuper();
|
|
121
|
-
* if (config.network.name === '
|
|
121
|
+
* if (config.network.name === 'goerli') {
|
|
122
122
|
* compilationJob.solidityConfig.settings = newSettings;
|
|
123
123
|
* }
|
|
124
124
|
* return compilationJob;
|
|
@@ -192,29 +192,19 @@ Learn more about compiler configuration at https://hardhat.org/config
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
function checkUnsupportedSolidityConfig(resolvedConfig) {
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
const
|
|
195
|
+
const compilerVersions = resolvedConfig.solidity.compilers.map((x) => x.version);
|
|
196
|
+
const overrideVersions = Object.values(resolvedConfig.solidity.overrides).map((x) => x.version);
|
|
197
|
+
const solcVersions = [...compilerVersions, ...overrideVersions];
|
|
198
198
|
const unsupportedVersions = [];
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
unsupportedVersions.push(solcConfig.version);
|
|
203
|
-
}
|
|
204
|
-
if (solcConfig.settings.viaIR === true) {
|
|
205
|
-
viaIREnabled = true;
|
|
199
|
+
for (const solcVersion of solcVersions) {
|
|
200
|
+
if (!semver_1.default.satisfies(solcVersion, constants_1.SUPPORTED_SOLIDITY_VERSION_RANGE)) {
|
|
201
|
+
unsupportedVersions.push(solcVersion);
|
|
206
202
|
}
|
|
207
203
|
}
|
|
208
204
|
if (unsupportedVersions.length > 0) {
|
|
209
205
|
console.warn(chalk_1.default.yellow(`Solidity ${unsupportedVersions.join(", ")} ${unsupportedVersions.length === 1 ? "is" : "are"} not fully supported yet. You can still use Hardhat, but some features, like stack traces, might not work correctly.
|
|
210
206
|
|
|
211
207
|
Learn more at https://hardhat.org/hardhat-runner/docs/reference/solidity-support
|
|
212
|
-
`));
|
|
213
|
-
}
|
|
214
|
-
if (viaIREnabled) {
|
|
215
|
-
console.warn(chalk_1.default.yellow(`Your solidity settings have viaIR enabled, which is not fully supported yet. You can still use Hardhat, but some features, like stack traces, might not work correctly.
|
|
216
|
-
|
|
217
|
-
Learn more at https://hardhat.org/solc-viair
|
|
218
208
|
`));
|
|
219
209
|
}
|
|
220
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loading.js","sourceRoot":"","sources":["../../../src/internal/core/config/config-loading.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-loading.js","sourceRoot":"","sources":["../../../src/internal/core/config/config-loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAIlB,YAAY,EACZ,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAGnB,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,SAAI,QAY/D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,QAgCxE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,QAcd;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,QAyBpE;AA4ED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,QAwBxD"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.printStackTrace = exports.printCallTrace = exports.printPrecompileTrace = exports.printCreateTrace = exports.printMessageTrace = void 0;
|
|
7
4
|
const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
5
|
const message_trace_1 = require("./message-trace");
|
|
10
6
|
const model_1 = require("./model");
|
|
11
7
|
const opcodes_1 = require("./opcodes");
|
|
@@ -98,7 +94,7 @@ function traceSteps(trace, depth) {
|
|
|
98
94
|
}
|
|
99
95
|
if ((0, opcodes_1.isJump)(inst.opcode)) {
|
|
100
96
|
const jump = inst.jumpType !== model_1.JumpType.NOT_JUMP
|
|
101
|
-
?
|
|
97
|
+
? `\x1b[1m(${model_1.JumpType[inst.jumpType]})\x1b[0m`
|
|
102
98
|
: "";
|
|
103
99
|
console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]} ${jump}`.padEnd(50), location);
|
|
104
100
|
}
|
|
@@ -142,7 +138,7 @@ function printStackTrace(trace) {
|
|
|
142
138
|
...entry,
|
|
143
139
|
sourceReference: flattenSourceReference(entry.sourceReference),
|
|
144
140
|
}));
|
|
145
|
-
console.log(JSON.stringify(withFlattenedSourceReferences,
|
|
141
|
+
console.log(JSON.stringify(withFlattenedSourceReferences, undefined, 2));
|
|
146
142
|
}
|
|
147
143
|
exports.printStackTrace = printStackTrace;
|
|
148
144
|
//# sourceMappingURL=debug.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-inferrer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-inferrer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EAOtB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EAIR,WAAW,EAGZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAEL,6BAA6B,EAI7B,8BAA8B,EAK9B,kBAAkB,EAKnB,MAAM,wBAAwB,CAAC;AAMhC,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,aAAa;IACjB,6BAA6B,CAClC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,GAAG,SAAS;IA+D1B,+BAA+B,CACpC,KAAK,EAAE,yBAAyB,GAC/B,kBAAkB,GAAG,SAAS;IAqB1B,iBAAiB,CACtB,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,kBAAkB,EAC9B,iBAAiB,EAAE,WAAW,EAAE,EAChC,kBAAkB,EAAE,OAAO,EAC3B,kBAAkB,EAAE,cAAc,GAAG,SAAS,GAC7C,kBAAkB;IAiBd,qBAAqB,CAC1B,UAAU,EAAE,kBAAkB,GAC7B,kBAAkB;IAoErB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqE5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiHnC;;OAEG;IACH,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,kBAAkB;IA+C1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyF7B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,+BAA+B;IAcvC,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oCAAoC;IAyB5C,OAAO,CAAC,0BAA0B;IAyBlC,OAAO,CAAC,gCAAgC;IAiBxC,OAAO,CAAC,kCAAkC;IAyB1C,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,+CAA+C;IAavD,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,gCAAgC;IAwBxC,OAAO,CAAC,6BAA6B;IAsBrC;;;OAGG;IACH,OAAO,CAAC,mCAAmC;IAwB3C,OAAO,CAAC,mCAAmC;IA+D3C,OAAO,CAAC,4CAA4C;IAmCpD,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,mCAAmC;IAY3C,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,iDAAiD;IAezD,OAAO,CAAC,gDAAgD;IAcxD,OAAO,CAAC,sDAAsD;IAc9D,OAAO,CAAC,+BAA+B;IAkBvC,OAAO,CAAC,mDAAmD;IAoD3D,OAAO,CAAC,iDAAiD;IAUzD,OAAO,CAAC,gCAAgC;IAsBxC,OAAO,CAAC,mDAAmD;IA2H3D,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,6BAA6B;IAyBrC,OAAO,CAAC,6CAA6C;IAoBrD,OAAO,CAAC,oCAAoC;IAqB5C,OAAO,CAAC,oDAAoD;IAc5D,OAAO,CAAC,gCAAgC;IA4BxC,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,0BAA0B;IA0BlC,OAAO,CAAC,uBAAuB;IAmE/B,OAAO,CAAC,+BAA+B;IAoBvC,OAAO,CAAC,kBAAkB;CAG3B;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,WAAW,GAChB,6BAA6B,GAAG,8BAA8B,CAgDhE"}
|
|
@@ -4,19 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.instructionToCallstackStackTraceEntry = exports.ErrorInferrer = void 0;
|
|
7
|
-
/* eslint "@typescript-eslint/no-non-null-assertion": "error" */
|
|
8
7
|
const exceptions_1 = require("@nomicfoundation/ethereumjs-evm/dist/exceptions");
|
|
9
8
|
const abi_1 = require("@ethersproject/abi");
|
|
10
|
-
const debug_1 = __importDefault(require("debug"));
|
|
11
9
|
const semver_1 = __importDefault(require("semver"));
|
|
12
|
-
const errors_1 = require("../../core/errors");
|
|
13
10
|
const abi_helpers_1 = require("../../util/abi-helpers");
|
|
14
11
|
const return_data_1 = require("../provider/return-data");
|
|
15
12
|
const message_trace_1 = require("./message-trace");
|
|
16
13
|
const model_1 = require("./model");
|
|
17
14
|
const opcodes_1 = require("./opcodes");
|
|
18
15
|
const solidity_stack_trace_1 = require("./solidity-stack-trace");
|
|
19
|
-
const log = (0, debug_1.default)("hardhat:core:hardhat-network:errors:error-inferrer");
|
|
20
16
|
const FIRST_SOLC_VERSION_CREATE_PARAMS_VALIDATION = "0.5.9";
|
|
21
17
|
const FIRST_SOLC_VERSION_RECEIVE_FUNCTION = "0.6.0";
|
|
22
18
|
const FIRST_SOLC_VERSION_WITH_UNMAPPED_REVERTS = "0.6.3";
|
|
@@ -27,8 +23,7 @@ class ErrorInferrer {
|
|
|
27
23
|
return this._getDirectLibraryCallErrorStackTrace(trace);
|
|
28
24
|
}
|
|
29
25
|
const calledFunction = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4));
|
|
30
|
-
if (calledFunction
|
|
31
|
-
this._isFunctionNotPayableError(trace, calledFunction)) {
|
|
26
|
+
if (this._isFunctionNotPayableError(trace, calledFunction)) {
|
|
32
27
|
return [
|
|
33
28
|
{
|
|
34
29
|
type: solidity_stack_trace_1.StackTraceEntryType.FUNCTION_NOT_PAYABLE_ERROR,
|
|
@@ -120,8 +115,7 @@ class ErrorInferrer {
|
|
|
120
115
|
stacktrace[i + 2].type === solidity_stack_trace_1.StackTraceEntryType.RETURNDATA_SIZE_ERROR) {
|
|
121
116
|
// ! below for tsc. we confirmed existence in the enclosing conditional.
|
|
122
117
|
const thatSrcRef = stacktrace[i + 2].sourceReference;
|
|
123
|
-
if (
|
|
124
|
-
frame.sourceReference.range[0] === thatSrcRef.range[0] &&
|
|
118
|
+
if (frame.sourceReference.range[0] === thatSrcRef.range[0] &&
|
|
125
119
|
frame.sourceReference.range[1] === thatSrcRef.range[1] &&
|
|
126
120
|
frame.sourceReference.line === thatSrcRef.line) {
|
|
127
121
|
return false;
|
|
@@ -152,9 +146,7 @@ class ErrorInferrer {
|
|
|
152
146
|
* Check if the last submessage can be used to generate the stack trace.
|
|
153
147
|
*/
|
|
154
148
|
_checkLastSubmessage(trace, stacktrace, lastSubmessageData) {
|
|
155
|
-
log("Start last submessage heuristic");
|
|
156
149
|
if (lastSubmessageData === undefined) {
|
|
157
|
-
log("Last submessage is undefined");
|
|
158
150
|
return undefined;
|
|
159
151
|
}
|
|
160
152
|
const inferredStacktrace = [...stacktrace];
|
|
@@ -174,7 +166,6 @@ class ErrorInferrer {
|
|
|
174
166
|
inferredStacktrace.push(...lastSubmessageData.stacktrace);
|
|
175
167
|
if (this._isContractCallRunOutOfGasError(trace, lastSubmessageData.stepIndex)) {
|
|
176
168
|
const lastFrame = inferredStacktrace.pop();
|
|
177
|
-
(0, errors_1.assertHardhatInvariant)(lastFrame !== undefined, "Expected inferred stack trace to have at least one frame");
|
|
178
169
|
inferredStacktrace.push({
|
|
179
170
|
type: solidity_stack_trace_1.StackTraceEntryType.CONTRACT_CALL_RUN_OUT_OF_GAS_ERROR,
|
|
180
171
|
sourceReference: lastFrame.sourceReference,
|
|
@@ -198,7 +189,6 @@ class ErrorInferrer {
|
|
|
198
189
|
* Check if the last call/create that was done failed.
|
|
199
190
|
*/
|
|
200
191
|
_checkFailedLastCall(trace, stacktrace) {
|
|
201
|
-
log("Start last call/create failed heuristic");
|
|
202
192
|
for (let stepIndex = trace.steps.length - 2; stepIndex >= 0; stepIndex--) {
|
|
203
193
|
const step = trace.steps[stepIndex];
|
|
204
194
|
const nextStep = trace.steps[stepIndex + 1];
|
|
@@ -226,7 +216,6 @@ class ErrorInferrer {
|
|
|
226
216
|
lastInstruction.opcode !== opcodes_1.Opcode.INVALID) {
|
|
227
217
|
return;
|
|
228
218
|
}
|
|
229
|
-
log("Last instruction is a revert or an invalid opcode");
|
|
230
219
|
const inferredStacktrace = [...stacktrace];
|
|
231
220
|
if (lastInstruction.location !== undefined &&
|
|
232
221
|
(!(0, message_trace_1.isDecodedCallTrace)(trace) || jumpedIntoFunction)) {
|
|
@@ -259,11 +248,9 @@ class ErrorInferrer {
|
|
|
259
248
|
}
|
|
260
249
|
else if ((0, message_trace_1.isDecodedCallTrace)(trace)) {
|
|
261
250
|
// This is here because of the optimizations
|
|
262
|
-
const functionSelector = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4));
|
|
263
|
-
(0, errors_1.assertHardhatInvariant)(functionSelector !== undefined, "Expected function selector to be defined");
|
|
264
251
|
inferredStacktrace.push({
|
|
265
252
|
type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR,
|
|
266
|
-
sourceReference: this._getFunctionStartSourceReference(trace,
|
|
253
|
+
sourceReference: this._getFunctionStartSourceReference(trace, trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4))),
|
|
267
254
|
message: new return_data_1.ReturnData(trace.returnData),
|
|
268
255
|
isInvalidOpcodeError: lastInstruction.opcode === opcodes_1.Opcode.INVALID,
|
|
269
256
|
});
|
|
@@ -292,7 +279,6 @@ class ErrorInferrer {
|
|
|
292
279
|
inferredStacktrace.push(revertFrame);
|
|
293
280
|
return this._fixInitialModifier(trace, inferredStacktrace);
|
|
294
281
|
}
|
|
295
|
-
log("Last instruction is a revert or an invalid opcode, but nothing could be inferred");
|
|
296
282
|
}
|
|
297
283
|
/**
|
|
298
284
|
* Check if the trace reverted with a panic error.
|
|
@@ -350,7 +336,6 @@ class ErrorInferrer {
|
|
|
350
336
|
* Check last instruction to try to infer the error.
|
|
351
337
|
*/
|
|
352
338
|
_checkLastInstruction(trace, stacktrace, functionJumpdests, jumpedIntoFunction) {
|
|
353
|
-
log("Start last executed instruction heuristic");
|
|
354
339
|
const lastStep = trace.steps[trace.steps.length - 1];
|
|
355
340
|
if (!(0, message_trace_1.isEvmStep)(lastStep)) {
|
|
356
341
|
throw new Error("This should not happen: MessageTrace ends with a subtrace");
|
|
@@ -400,20 +385,16 @@ class ErrorInferrer {
|
|
|
400
385
|
}
|
|
401
386
|
}
|
|
402
387
|
_checkNonContractCalled(trace, stacktrace) {
|
|
403
|
-
log("Start non-contract address called heuristic");
|
|
404
388
|
if (this._isCalledNonContractAccountError(trace)) {
|
|
405
|
-
const sourceReference = this._getLastSourceReference(trace);
|
|
406
|
-
// We are sure this is not undefined because there was at least a call instruction
|
|
407
|
-
(0, errors_1.assertHardhatInvariant)(sourceReference !== undefined, "Expected source reference to be defined");
|
|
408
389
|
const nonContractCalledFrame = {
|
|
409
390
|
type: solidity_stack_trace_1.StackTraceEntryType.NONCONTRACT_ACCOUNT_CALLED_ERROR,
|
|
410
|
-
|
|
391
|
+
// We are sure this is not undefined because there was at least a call instruction
|
|
392
|
+
sourceReference: this._getLastSourceReference(trace),
|
|
411
393
|
};
|
|
412
394
|
return [...stacktrace, nonContractCalledFrame];
|
|
413
395
|
}
|
|
414
396
|
}
|
|
415
397
|
_checkSolidity063UnmappedRevert(trace, stacktrace) {
|
|
416
|
-
log("Start solidity 0.6.3 unmapped revert heuristic");
|
|
417
398
|
if (this._solidity063MaybeUnmappedRevert(trace)) {
|
|
418
399
|
const revertFrame = this._solidity063GetFrameForUnmappedRevertWithinFunction(trace);
|
|
419
400
|
if (revertFrame !== undefined) {
|
|
@@ -422,7 +403,6 @@ class ErrorInferrer {
|
|
|
422
403
|
}
|
|
423
404
|
}
|
|
424
405
|
_checkContractTooLarge(trace) {
|
|
425
|
-
log("Start contract is too large heuristic");
|
|
426
406
|
if ((0, message_trace_1.isCreateTrace)(trace) && this._isContractTooLargeError(trace)) {
|
|
427
407
|
return [
|
|
428
408
|
{
|
|
@@ -433,7 +413,6 @@ class ErrorInferrer {
|
|
|
433
413
|
}
|
|
434
414
|
}
|
|
435
415
|
_otherExecutionErrorStacktrace(trace, stacktrace) {
|
|
436
|
-
log("No heuristic matched, return other execution error entry");
|
|
437
416
|
const otherExecutionErrorFrame = {
|
|
438
417
|
type: solidity_stack_trace_1.StackTraceEntryType.OTHER_EXECUTION_ERROR,
|
|
439
418
|
sourceReference: this._getLastSourceReference(trace),
|
|
@@ -474,6 +453,9 @@ class ErrorInferrer {
|
|
|
474
453
|
];
|
|
475
454
|
}
|
|
476
455
|
_isFunctionNotPayableError(trace, calledFunction) {
|
|
456
|
+
if (calledFunction === undefined) {
|
|
457
|
+
return false;
|
|
458
|
+
}
|
|
477
459
|
// This error doesn't return data
|
|
478
460
|
if (trace.returnData.length > 0) {
|
|
479
461
|
return false;
|
|
@@ -680,10 +662,7 @@ class ErrorInferrer {
|
|
|
680
662
|
if (inst.location === undefined) {
|
|
681
663
|
continue;
|
|
682
664
|
}
|
|
683
|
-
|
|
684
|
-
if (sourceReference !== undefined) {
|
|
685
|
-
return sourceReference;
|
|
686
|
-
}
|
|
665
|
+
return sourceLocationToSourceReference(trace.bytecode, inst.location);
|
|
687
666
|
}
|
|
688
667
|
return undefined;
|
|
689
668
|
}
|
|
@@ -709,31 +688,26 @@ class ErrorInferrer {
|
|
|
709
688
|
func.location.contains(lastInstruction.location));
|
|
710
689
|
}
|
|
711
690
|
_instructionWithinFunctionToRevertStackTraceEntry(trace, inst) {
|
|
712
|
-
const sourceReference = sourceLocationToSourceReference(trace.bytecode, inst.location);
|
|
713
|
-
(0, errors_1.assertHardhatInvariant)(sourceReference !== undefined, "Expected source reference to be defined");
|
|
714
691
|
return {
|
|
715
692
|
type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR,
|
|
716
|
-
sourceReference,
|
|
693
|
+
sourceReference: sourceLocationToSourceReference(trace.bytecode, inst.location),
|
|
717
694
|
message: new return_data_1.ReturnData(trace.returnData),
|
|
718
695
|
isInvalidOpcodeError: inst.opcode === opcodes_1.Opcode.INVALID,
|
|
719
696
|
};
|
|
720
697
|
}
|
|
721
698
|
_instructionWithinFunctionToPanicStackTraceEntry(trace, inst, errorCode) {
|
|
722
|
-
const lastSourceReference = this._getLastSourceReference(trace);
|
|
723
699
|
return {
|
|
724
700
|
type: solidity_stack_trace_1.StackTraceEntryType.PANIC_ERROR,
|
|
725
701
|
sourceReference: sourceLocationToSourceReference(trace.bytecode, inst.location) ??
|
|
726
|
-
|
|
702
|
+
this._getLastSourceReference(trace),
|
|
727
703
|
errorCode,
|
|
728
704
|
};
|
|
729
705
|
}
|
|
730
706
|
_instructionWithinFunctionToCustomErrorStackTraceEntry(trace, inst, message) {
|
|
731
|
-
const lastSourceReference = this._getLastSourceReference(trace);
|
|
732
|
-
(0, errors_1.assertHardhatInvariant)(lastSourceReference !== undefined, "Expected last source reference to be defined");
|
|
733
707
|
return {
|
|
734
708
|
type: solidity_stack_trace_1.StackTraceEntryType.CUSTOM_ERROR,
|
|
735
709
|
sourceReference: sourceLocationToSourceReference(trace.bytecode, inst.location) ??
|
|
736
|
-
|
|
710
|
+
this._getLastSourceReference(trace),
|
|
737
711
|
message,
|
|
738
712
|
};
|
|
739
713
|
}
|
|
@@ -820,9 +794,9 @@ class ErrorInferrer {
|
|
|
820
794
|
const hasNextInst = trace.bytecode.hasInstruction(nextInstPc);
|
|
821
795
|
if (hasNextInst) {
|
|
822
796
|
const nextInst = trace.bytecode.getInstruction(nextInstPc);
|
|
823
|
-
const prevLoc = prevInst
|
|
797
|
+
const prevLoc = prevInst.location;
|
|
824
798
|
const nextLoc = nextInst.location;
|
|
825
|
-
const prevFunc = prevLoc
|
|
799
|
+
const prevFunc = prevLoc.getContainingFunction();
|
|
826
800
|
const nextFunc = nextLoc?.getContainingFunction();
|
|
827
801
|
// This is probably a require. This means that we have the exact
|
|
828
802
|
// line, but the stack trace may be degraded (e.g. missing our
|
|
@@ -830,7 +804,6 @@ class ErrorInferrer {
|
|
|
830
804
|
// add this frame as UNMAPPED_SOLC_0_6_3_REVERT_ERROR
|
|
831
805
|
if (prevFunc !== undefined &&
|
|
832
806
|
nextLoc !== undefined &&
|
|
833
|
-
prevLoc !== undefined &&
|
|
834
807
|
prevLoc.equals(nextLoc)) {
|
|
835
808
|
return {
|
|
836
809
|
...this._instructionWithinFunctionToRevertStackTraceEntry(trace, nextInst),
|
|
@@ -840,7 +813,7 @@ class ErrorInferrer {
|
|
|
840
813
|
let revertFrame;
|
|
841
814
|
// If the previous and next location don't match, we try to use the
|
|
842
815
|
// previous one if it's inside a function, otherwise we use the next one
|
|
843
|
-
if (prevFunc !== undefined
|
|
816
|
+
if (prevFunc !== undefined) {
|
|
844
817
|
revertFrame = {
|
|
845
818
|
...this._instructionWithinFunctionToRevertStackTraceEntry(trace, prevInst),
|
|
846
819
|
type: solidity_stack_trace_1.StackTraceEntryType.UNMAPPED_SOLC_0_6_3_REVERT_ERROR,
|
|
@@ -857,7 +830,7 @@ class ErrorInferrer {
|
|
|
857
830
|
}
|
|
858
831
|
return revertFrame;
|
|
859
832
|
}
|
|
860
|
-
if ((0, message_trace_1.isCreateTrace)(trace)
|
|
833
|
+
if ((0, message_trace_1.isCreateTrace)(trace)) {
|
|
861
834
|
// Solidity is smart enough to stop emitting extra instructions after
|
|
862
835
|
// an unconditional revert happens in a constructor. If this is the case
|
|
863
836
|
// we just return a special error.
|
|
@@ -888,20 +861,18 @@ class ErrorInferrer {
|
|
|
888
861
|
}
|
|
889
862
|
return constructorRevertFrame;
|
|
890
863
|
}
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
this._solidity063CorrectLineNumber(latestInstructionRevertFrame);
|
|
902
|
-
}
|
|
903
|
-
return latestInstructionRevertFrame;
|
|
864
|
+
// We may as well just be in a function or modifier and just happen
|
|
865
|
+
// to be at the last instruction of the runtime bytecode.
|
|
866
|
+
// In this case we just return whatever the last mapped intruction
|
|
867
|
+
// points to.
|
|
868
|
+
const latestInstructionRevertFrame = {
|
|
869
|
+
...this._instructionWithinFunctionToRevertStackTraceEntry(trace, prevInst),
|
|
870
|
+
type: solidity_stack_trace_1.StackTraceEntryType.UNMAPPED_SOLC_0_6_3_REVERT_ERROR,
|
|
871
|
+
};
|
|
872
|
+
if (latestInstructionRevertFrame.sourceReference !== undefined) {
|
|
873
|
+
this._solidity063CorrectLineNumber(latestInstructionRevertFrame);
|
|
904
874
|
}
|
|
875
|
+
return latestInstructionRevertFrame;
|
|
905
876
|
}
|
|
906
877
|
_isContractTooLargeError(trace) {
|
|
907
878
|
return trace.error?.error === exceptions_1.ERROR.CODESIZE_EXCEEDS_MAXIMUM;
|
|
@@ -948,12 +919,10 @@ class ErrorInferrer {
|
|
|
948
919
|
return undefined;
|
|
949
920
|
}
|
|
950
921
|
_callInstructionToCallFailedToExecuteStackTraceEntry(bytecode, callInst) {
|
|
951
|
-
const sourceReference = sourceLocationToSourceReference(bytecode, callInst.location);
|
|
952
|
-
(0, errors_1.assertHardhatInvariant)(sourceReference !== undefined, "Expected source reference to be defined");
|
|
953
922
|
// Calls only happen within functions
|
|
954
923
|
return {
|
|
955
924
|
type: solidity_stack_trace_1.StackTraceEntryType.CALL_FAILED_ERROR,
|
|
956
|
-
sourceReference,
|
|
925
|
+
sourceReference: sourceLocationToSourceReference(bytecode, callInst.location),
|
|
957
926
|
};
|
|
958
927
|
}
|
|
959
928
|
_getEntryBeforeFailureInModifier(trace, functionJumpdests) {
|
|
@@ -984,14 +953,11 @@ class ErrorInferrer {
|
|
|
984
953
|
}
|
|
985
954
|
const callOpcodeStep = trace.steps[callSubtraceStepIndex - 1];
|
|
986
955
|
const callInst = trace.bytecode.getInstruction(callOpcodeStep.pc);
|
|
987
|
-
// Calls are always made from within functions
|
|
988
|
-
|
|
989
|
-
return this._isLastLocation(trace, callSubtraceStepIndex + 1, callInst.location);
|
|
956
|
+
return this._isLastLocation(trace, callSubtraceStepIndex + 1, callInst.location // Calls are always made from within functions
|
|
957
|
+
);
|
|
990
958
|
}
|
|
991
959
|
_isCallFailedError(trace, instIndex, callInstruction) {
|
|
992
|
-
const callLocation = callInstruction.location;
|
|
993
|
-
// Calls are always made from within functions
|
|
994
|
-
(0, errors_1.assertHardhatInvariant)(callLocation !== undefined, "Expected call location to be defined");
|
|
960
|
+
const callLocation = callInstruction.location; // Calls are always made from within functions
|
|
995
961
|
return this._isLastLocation(trace, instIndex, callLocation);
|
|
996
962
|
}
|
|
997
963
|
_isLastLocation(trace, fromStep, location) {
|
|
@@ -1111,17 +1077,14 @@ function instructionToCallstackStackTraceEntry(bytecode, inst) {
|
|
|
1111
1077
|
},
|
|
1112
1078
|
};
|
|
1113
1079
|
}
|
|
1114
|
-
const func = inst.location
|
|
1080
|
+
const func = inst.location.getContainingFunction();
|
|
1115
1081
|
if (func !== undefined) {
|
|
1116
|
-
const sourceReference = sourceLocationToSourceReference(bytecode, inst.location);
|
|
1117
|
-
(0, errors_1.assertHardhatInvariant)(sourceReference !== undefined, "Expected source reference to be defined");
|
|
1118
1082
|
return {
|
|
1119
1083
|
type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY,
|
|
1120
|
-
sourceReference,
|
|
1084
|
+
sourceReference: sourceLocationToSourceReference(bytecode, inst.location),
|
|
1121
1085
|
functionType: func.type,
|
|
1122
1086
|
};
|
|
1123
1087
|
}
|
|
1124
|
-
(0, errors_1.assertHardhatInvariant)(inst.location !== undefined, "Expected instruction location to be defined");
|
|
1125
1088
|
return {
|
|
1126
1089
|
type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY,
|
|
1127
1090
|
sourceReference: {
|