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.
Files changed (94) hide show
  1. package/internal/hardhat-network/provider/provider.d.ts +2 -3
  2. package/internal/hardhat-network/provider/provider.d.ts.map +1 -1
  3. package/internal/hardhat-network/provider/provider.js +5 -19
  4. package/internal/hardhat-network/provider/provider.js.map +1 -1
  5. package/internal/hardhat-network/provider/return-data.d.ts +2 -15
  6. package/internal/hardhat-network/provider/return-data.d.ts.map +1 -1
  7. package/internal/hardhat-network/provider/return-data.js +2 -50
  8. package/internal/hardhat-network/provider/return-data.js.map +1 -1
  9. package/internal/hardhat-network/provider/vm/exit.d.ts +2 -20
  10. package/internal/hardhat-network/provider/vm/exit.d.ts.map +1 -1
  11. package/internal/hardhat-network/provider/vm/exit.js +3 -78
  12. package/internal/hardhat-network/provider/vm/exit.js.map +1 -1
  13. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +2 -3
  14. package/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +1 -1
  15. package/internal/hardhat-network/stack-traces/compiler-to-model.js +2 -351
  16. package/internal/hardhat-network/stack-traces/compiler-to-model.js.map +1 -1
  17. package/internal/hardhat-network/stack-traces/debug.d.ts +2 -7
  18. package/internal/hardhat-network/stack-traces/debug.d.ts.map +1 -1
  19. package/internal/hardhat-network/stack-traces/debug.js +3 -143
  20. package/internal/hardhat-network/stack-traces/debug.js.map +1 -1
  21. package/internal/hardhat-network/stack-traces/library-utils.d.ts +2 -11
  22. package/internal/hardhat-network/stack-traces/library-utils.d.ts.map +1 -1
  23. package/internal/hardhat-network/stack-traces/library-utils.js +3 -61
  24. package/internal/hardhat-network/stack-traces/library-utils.js.map +1 -1
  25. package/internal/hardhat-network/stack-traces/logger.d.ts.map +1 -1
  26. package/internal/hardhat-network/stack-traces/logger.js +0 -221
  27. package/internal/hardhat-network/stack-traces/logger.js.map +1 -1
  28. package/internal/hardhat-network/stack-traces/message-trace.d.ts +2 -51
  29. package/internal/hardhat-network/stack-traces/message-trace.d.ts.map +1 -1
  30. package/internal/hardhat-network/stack-traces/message-trace.js +0 -46
  31. package/internal/hardhat-network/stack-traces/message-trace.js.map +1 -1
  32. package/internal/hardhat-network/stack-traces/solidity-errors.d.ts.map +1 -1
  33. package/internal/hardhat-network/stack-traces/solidity-errors.js +58 -53
  34. package/internal/hardhat-network/stack-traces/solidity-errors.js.map +1 -1
  35. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts +4 -155
  36. package/internal/hardhat-network/stack-traces/solidity-stack-trace.d.ts.map +1 -1
  37. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js +12 -37
  38. package/internal/hardhat-network/stack-traces/solidity-stack-trace.js.map +1 -1
  39. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts +2 -13
  40. package/internal/hardhat-network/stack-traces/solidityTracer.d.ts.map +1 -1
  41. package/internal/hardhat-network/stack-traces/solidityTracer.js +2 -162
  42. package/internal/hardhat-network/stack-traces/solidityTracer.js.map +1 -1
  43. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts +4 -15
  44. package/internal/hardhat-network/stack-traces/vm-trace-decoder.d.ts.map +1 -1
  45. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js +6 -70
  46. package/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +1 -1
  47. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts +2 -19
  48. package/internal/hardhat-network/stack-traces/vm-tracer.d.ts.map +1 -1
  49. package/internal/hardhat-network/stack-traces/vm-tracer.js +3 -150
  50. package/internal/hardhat-network/stack-traces/vm-tracer.js.map +1 -1
  51. package/package.json +2 -2
  52. package/src/internal/hardhat-network/provider/provider.ts +11 -24
  53. package/src/internal/hardhat-network/provider/return-data.ts +5 -73
  54. package/src/internal/hardhat-network/provider/vm/exit.ts +4 -92
  55. package/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +5 -697
  56. package/src/internal/hardhat-network/stack-traces/debug.ts +5 -218
  57. package/src/internal/hardhat-network/stack-traces/library-utils.ts +5 -90
  58. package/src/internal/hardhat-network/stack-traces/logger.ts +0 -221
  59. package/src/internal/hardhat-network/stack-traces/message-trace.ts +5 -122
  60. package/src/internal/hardhat-network/stack-traces/solidity-errors.ts +16 -15
  61. package/src/internal/hardhat-network/stack-traces/solidity-stack-trace.ts +83 -186
  62. package/src/internal/hardhat-network/stack-traces/solidityTracer.ts +5 -253
  63. package/src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts +15 -108
  64. package/src/internal/hardhat-network/stack-traces/vm-tracer.ts +5 -206
  65. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts +0 -15
  66. package/internal/hardhat-network/stack-traces/contracts-identifier.d.ts.map +0 -1
  67. package/internal/hardhat-network/stack-traces/contracts-identifier.js +0 -166
  68. package/internal/hardhat-network/stack-traces/contracts-identifier.js.map +0 -1
  69. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts +0 -85
  70. package/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +0 -1
  71. package/internal/hardhat-network/stack-traces/error-inferrer.js +0 -1168
  72. package/internal/hardhat-network/stack-traces/error-inferrer.js.map +0 -1
  73. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts +0 -24
  74. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.d.ts.map +0 -1
  75. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +0 -116
  76. package/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +0 -1
  77. package/internal/hardhat-network/stack-traces/model.d.ts +0 -140
  78. package/internal/hardhat-network/stack-traces/model.d.ts.map +0 -1
  79. package/internal/hardhat-network/stack-traces/model.js +0 -328
  80. package/internal/hardhat-network/stack-traces/model.js.map +0 -1
  81. package/internal/hardhat-network/stack-traces/opcodes.d.ts +0 -266
  82. package/internal/hardhat-network/stack-traces/opcodes.d.ts.map +0 -1
  83. package/internal/hardhat-network/stack-traces/opcodes.js +0 -320
  84. package/internal/hardhat-network/stack-traces/opcodes.js.map +0 -1
  85. package/internal/hardhat-network/stack-traces/source-maps.d.ts +0 -13
  86. package/internal/hardhat-network/stack-traces/source-maps.d.ts.map +0 -1
  87. package/internal/hardhat-network/stack-traces/source-maps.js +0 -106
  88. package/internal/hardhat-network/stack-traces/source-maps.js.map +0 -1
  89. package/src/internal/hardhat-network/stack-traces/contracts-identifier.ts +0 -235
  90. package/src/internal/hardhat-network/stack-traces/error-inferrer.ts +0 -1845
  91. package/src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts +0 -163
  92. package/src/internal/hardhat-network/stack-traces/model.ts +0 -409
  93. package/src/internal/hardhat-network/stack-traces/opcodes.ts +0 -344
  94. package/src/internal/hardhat-network/stack-traces/source-maps.ts +0 -167
@@ -1,166 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContractsIdentifier = void 0;
4
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
5
- const library_utils_1 = require("./library-utils");
6
- const opcodes_1 = require("./opcodes");
7
- /**
8
- * This class represent a somewhat special Trie of bytecodes.
9
- *
10
- * What makes it special is that every node has a set of all of its descendants and its depth.
11
- */
12
- class BytecodeTrie {
13
- static isBytecodeTrie(o) {
14
- if (o === undefined || o === null) {
15
- return false;
16
- }
17
- return "childNodes" in o;
18
- }
19
- constructor(depth) {
20
- this.depth = depth;
21
- this.childNodes = new Map();
22
- this.descendants = [];
23
- }
24
- add(bytecode) {
25
- // eslint-disable-next-line @typescript-eslint/no-this-alias
26
- let trieNode = this;
27
- for (let currentCodeByte = 0; currentCodeByte <= bytecode.normalizedCode.length; currentCodeByte += 1) {
28
- if (currentCodeByte === bytecode.normalizedCode.length) {
29
- // If multiple contracts with the exact same bytecode are added we keep the last of them.
30
- // Note that this includes the metadata hash, so the chances of happening are pretty remote,
31
- // except in super artificial cases that we have in our test suite.
32
- trieNode.match = bytecode;
33
- return;
34
- }
35
- const byte = bytecode.normalizedCode[currentCodeByte];
36
- trieNode.descendants.push(bytecode);
37
- let childNode = trieNode.childNodes.get(byte);
38
- if (childNode === undefined) {
39
- childNode = new BytecodeTrie(currentCodeByte);
40
- trieNode.childNodes.set(byte, childNode);
41
- }
42
- trieNode = childNode;
43
- }
44
- }
45
- /**
46
- * Searches for a bytecode. If it's an exact match, it is returned. If there's no match, but a
47
- * prefix of the code is found in the trie, the node of the longest prefix is returned. If the
48
- * entire code is covered by the trie, and there's no match, we return undefined.
49
- */
50
- search(code, currentCodeByte = 0) {
51
- if (currentCodeByte > code.length) {
52
- return undefined;
53
- }
54
- // eslint-disable-next-line @typescript-eslint/no-this-alias
55
- let trieNode = this;
56
- for (; currentCodeByte <= code.length; currentCodeByte += 1) {
57
- if (currentCodeByte === code.length) {
58
- return trieNode.match;
59
- }
60
- const childNode = trieNode.childNodes.get(code[currentCodeByte]);
61
- if (childNode === undefined) {
62
- return trieNode;
63
- }
64
- trieNode = childNode;
65
- }
66
- }
67
- }
68
- class ContractsIdentifier {
69
- constructor(_enableCache = true) {
70
- this._enableCache = _enableCache;
71
- this._trie = new BytecodeTrie(-1);
72
- this._cache = new Map();
73
- }
74
- addBytecode(bytecode) {
75
- this._trie.add(bytecode);
76
- this._cache.clear();
77
- }
78
- getBytecodeForCall(code, isCreate) {
79
- const normalizedCode = (0, library_utils_1.normalizeLibraryRuntimeBytecodeIfNecessary)(code);
80
- let normalizedCodeHex;
81
- if (this._enableCache) {
82
- normalizedCodeHex = (0, ethereumjs_util_1.bytesToHex)(normalizedCode);
83
- const cached = this._cache.get(normalizedCodeHex);
84
- if (cached !== undefined) {
85
- return cached;
86
- }
87
- }
88
- const result = this._searchBytecode(isCreate, normalizedCode);
89
- if (this._enableCache) {
90
- if (result !== undefined) {
91
- this._cache.set(normalizedCodeHex, result);
92
- }
93
- }
94
- return result;
95
- }
96
- _searchBytecode(isCreate, code, normalizeLibraries = true, trie = this._trie, firstByteToSearch = 0) {
97
- const searchResult = trie.search(code, firstByteToSearch);
98
- if (searchResult === undefined) {
99
- return undefined;
100
- }
101
- if (!BytecodeTrie.isBytecodeTrie(searchResult)) {
102
- return searchResult;
103
- }
104
- // Deployment messages have their abi-encoded arguments at the end of the bytecode.
105
- //
106
- // We don't know how long those arguments are, as we don't know which contract is being
107
- // deployed, hence we don't know the signature of its constructor.
108
- //
109
- // To make things even harder, we can't trust that the user actually passed the right
110
- // amount of arguments.
111
- //
112
- // Luckily, the chances of a complete deployment bytecode being the prefix of another one are
113
- // remote. For example, most of the time it ends with its metadata hash, which will differ.
114
- //
115
- // We take advantage of this last observation, and just return the bytecode that exactly
116
- // matched the searchResult (sub)trie that we got.
117
- if (isCreate &&
118
- searchResult.match !== undefined &&
119
- searchResult.match.isDeployment) {
120
- return searchResult.match;
121
- }
122
- if (normalizeLibraries) {
123
- for (const bytecodeWithLibraries of searchResult.descendants) {
124
- if (bytecodeWithLibraries.libraryAddressPositions.length === 0 &&
125
- bytecodeWithLibraries.immutableReferences.length === 0) {
126
- continue;
127
- }
128
- const normalizedLibrariesCode = (0, library_utils_1.zeroOutAddresses)(code, bytecodeWithLibraries.libraryAddressPositions);
129
- const normalizedCode = (0, library_utils_1.zeroOutSlices)(normalizedLibrariesCode, bytecodeWithLibraries.immutableReferences);
130
- const normalizedResult = this._searchBytecode(isCreate, normalizedCode, false, searchResult, searchResult.depth + 1);
131
- if (normalizedResult !== undefined) {
132
- return normalizedResult;
133
- }
134
- }
135
- }
136
- // If we got here we may still have the contract, but with a different metadata hash.
137
- //
138
- // We check if we got to match the entire executable bytecode, and are just stuck because
139
- // of the metadata. If that's the case, we can assume that any descendant will be a valid
140
- // Bytecode, so we just choose the most recently added one.
141
- //
142
- // The reason this works is because there's no chance that Solidity includes an entire
143
- // bytecode (i.e. with metadata), as a prefix of another one.
144
- if (this._isMatchingMetadata(code, searchResult.depth) &&
145
- searchResult.descendants.length > 0) {
146
- return searchResult.descendants[searchResult.descendants.length - 1];
147
- }
148
- return undefined;
149
- }
150
- /**
151
- * Returns true if the lastByte is placed right when the metadata starts or after it.
152
- */
153
- _isMatchingMetadata(code, lastByte) {
154
- for (let byte = 0; byte < lastByte;) {
155
- const opcode = code[byte];
156
- // Solidity always emits REVERT INVALID right before the metadata
157
- if (opcode === opcodes_1.Opcode.REVERT && code[byte + 1] === opcodes_1.Opcode.INVALID) {
158
- return true;
159
- }
160
- byte += (0, opcodes_1.getOpcodeLength)(opcode);
161
- }
162
- return false;
163
- }
164
- }
165
- exports.ContractsIdentifier = ContractsIdentifier;
166
- //# sourceMappingURL=contracts-identifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contracts-identifier.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/contracts-identifier.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- import { DecodedCallMessageTrace, DecodedCreateMessageTrace, DecodedEvmMessageTrace, MessageTrace } from "./message-trace";
2
- import { Bytecode, Instruction } from "./model";
3
- import { CallstackEntryStackTraceEntry, InternalFunctionCallStackEntry, SolidityStackTrace } from "./solidity-stack-trace";
4
- export interface SubmessageData {
5
- messageTrace: MessageTrace;
6
- stacktrace: SolidityStackTrace;
7
- stepIndex: number;
8
- }
9
- export declare class ErrorInferrer {
10
- inferBeforeTracingCallMessage(trace: DecodedCallMessageTrace): SolidityStackTrace | undefined;
11
- inferBeforeTracingCreateMessage(trace: DecodedCreateMessageTrace): SolidityStackTrace | undefined;
12
- inferAfterTracing(trace: DecodedEvmMessageTrace, stacktrace: SolidityStackTrace, functionJumpdests: Instruction[], jumpedIntoFunction: boolean, lastSubmessageData: SubmessageData | undefined): SolidityStackTrace;
13
- filterRedundantFrames(stacktrace: SolidityStackTrace): SolidityStackTrace;
14
- /**
15
- * Check if the last submessage can be used to generate the stack trace.
16
- */
17
- private _checkLastSubmessage;
18
- /**
19
- * Check if the last call/create that was done failed.
20
- */
21
- private _checkFailedLastCall;
22
- /**
23
- * Check if the execution stopped with a revert or an invalid opcode.
24
- */
25
- private _checkRevertOrInvalidOpcode;
26
- /**
27
- * Check if the trace reverted with a panic error.
28
- */
29
- private _checkPanic;
30
- private _checkCustomErrors;
31
- /**
32
- * Check last instruction to try to infer the error.
33
- */
34
- private _checkLastInstruction;
35
- private _checkNonContractCalled;
36
- private _checkSolidity063UnmappedRevert;
37
- private _checkContractTooLarge;
38
- private _otherExecutionErrorStacktrace;
39
- private _fixInitialModifier;
40
- private _isDirectLibraryCall;
41
- private _getDirectLibraryCallErrorStackTrace;
42
- private _isFunctionNotPayableError;
43
- private _getFunctionStartSourceReference;
44
- private _isMissingFunctionAndFallbackError;
45
- private _emptyCalldataAndNoReceive;
46
- private _getContractStartWithoutFunctionSourceReference;
47
- private _isFallbackNotPayableError;
48
- private _getFallbackStartSourceReference;
49
- private _isConstructorNotPayableError;
50
- /**
51
- * Returns a source reference pointing to the constructor if it exists, or to the contract
52
- * otherwise.
53
- */
54
- private _getConstructorStartSourceReference;
55
- private _isConstructorInvalidArgumentsError;
56
- private _getEntryBeforeInitialModifierCallstackEntry;
57
- private _getLastSourceReference;
58
- private _hasFailedInsideTheFallbackFunction;
59
- private _hasFailedInsideTheReceiveFunction;
60
- private _hasFailedInsideFunction;
61
- private _instructionWithinFunctionToRevertStackTraceEntry;
62
- private _instructionWithinFunctionToUnmappedSolc063RevertErrorStackTraceEntry;
63
- private _instructionWithinFunctionToPanicStackTraceEntry;
64
- private _instructionWithinFunctionToCustomErrorStackTraceEntry;
65
- private _solidity063MaybeUnmappedRevert;
66
- private _solidity063GetFrameForUnmappedRevertBeforeFunction;
67
- private _getOtherErrorBeforeCalledFunctionStackTraceEntry;
68
- private _isCalledNonContractAccountError;
69
- private _solidity063GetFrameForUnmappedRevertWithinFunction;
70
- private _isContractTooLargeError;
71
- private _solidity063CorrectLineNumber;
72
- private _getLastInstructionWithValidLocationStepIndex;
73
- private _getLastInstructionWithValidLocation;
74
- private _callInstructionToCallFailedToExecuteStackTraceEntry;
75
- private _getEntryBeforeFailureInModifier;
76
- private _failsRightAfterCall;
77
- private _isCallFailedError;
78
- private _isLastLocation;
79
- private _isSubtraceErrorPropagated;
80
- private _isProxyErrorPropagated;
81
- private _isContractCallRunOutOfGasError;
82
- private _isPanicReturnData;
83
- }
84
- export declare function instructionToCallstackStackTraceEntry(bytecode: Bytecode, inst: Instruction): CallstackEntryStackTraceEntry | InternalFunctionCallStackEntry;
85
- //# sourceMappingURL=error-inferrer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-inferrer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"}