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,356 +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.createModelsAndDecodeBytecodes = void 0;
7
- const debug_1 = __importDefault(require("debug"));
8
- const library_utils_1 = require("./library-utils");
9
- const model_1 = require("./model");
10
- const source_maps_1 = require("./source-maps");
11
- const abi = require("ethereumjs-abi");
12
- const log = (0, debug_1.default)("hardhat:core:hardhat-network:compiler-to-model");
13
- function createModelsAndDecodeBytecodes(solcVersion, compilerInput, compilerOutput) {
14
- const fileIdToSourceFile = new Map();
15
- const contractIdToContract = new Map();
16
- createSourcesModelFromAst(compilerOutput, compilerInput, fileIdToSourceFile, contractIdToContract);
17
- const bytecodes = decodeBytecodes(solcVersion, compilerOutput, fileIdToSourceFile, contractIdToContract);
18
- correctSelectors(bytecodes, compilerOutput);
19
- return bytecodes;
20
- }
4
+ const napi_rs_1 = require("../../../common/napi-rs");
5
+ const { createModelsAndDecodeBytecodes } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
21
6
  exports.createModelsAndDecodeBytecodes = createModelsAndDecodeBytecodes;
22
- function createSourcesModelFromAst(compilerOutput, compilerInput, fileIdToSourceFile, contractIdToContract) {
23
- const contractIdToLinearizedBaseContractIds = new Map();
24
- // Create a `sourceName => contract => abi` mapping
25
- const sourceNameToContractToAbi = new Map();
26
- for (const [sourceName, contracts] of Object.entries(compilerOutput.contracts)) {
27
- const contractToAbi = new Map();
28
- sourceNameToContractToAbi.set(sourceName, contractToAbi);
29
- for (const [contractName, contract] of Object.entries(contracts)) {
30
- contractToAbi.set(contractName, contract.abi);
31
- }
32
- }
33
- for (const [sourceName, source] of Object.entries(compilerOutput.sources)) {
34
- const contractToAbi = sourceNameToContractToAbi.get(sourceName);
35
- const file = new model_1.SourceFile(sourceName, compilerInput.sources[sourceName].content);
36
- fileIdToSourceFile.set(source.id, file);
37
- for (const node of source.ast.nodes) {
38
- if (node.nodeType === "ContractDefinition") {
39
- const contractType = contractKindToContractType(node.contractKind);
40
- if (contractType === undefined) {
41
- continue;
42
- }
43
- const contractAbi = contractToAbi?.get(node.name);
44
- processContractAstNode(file, node, fileIdToSourceFile, contractType, contractIdToContract, contractIdToLinearizedBaseContractIds, contractAbi);
45
- }
46
- // top-level functions
47
- if (node.nodeType === "FunctionDefinition") {
48
- processFunctionDefinitionAstNode(node, fileIdToSourceFile, undefined, file);
49
- }
50
- }
51
- }
52
- applyContractsInheritance(contractIdToContract, contractIdToLinearizedBaseContractIds);
53
- }
54
- function processContractAstNode(file, contractNode, fileIdToSourceFile, contractType, contractIdToContract, contractIdToLinearizedBaseContractIds, contractAbi) {
55
- const contractLocation = astSrcToSourceLocation(contractNode.src, fileIdToSourceFile);
56
- const contract = new model_1.Contract(contractNode.name, contractType, contractLocation);
57
- contractIdToContract.set(contractNode.id, contract);
58
- contractIdToLinearizedBaseContractIds.set(contractNode.id, contractNode.linearizedBaseContracts);
59
- file.addContract(contract);
60
- for (const node of contractNode.nodes) {
61
- if (node.nodeType === "FunctionDefinition") {
62
- const functionAbis = contractAbi?.filter((abiEntry) => abiEntry.name === node.name);
63
- processFunctionDefinitionAstNode(node, fileIdToSourceFile, contract, file, functionAbis);
64
- }
65
- else if (node.nodeType === "ModifierDefinition") {
66
- processModifierDefinitionAstNode(node, fileIdToSourceFile, contract, file);
67
- }
68
- else if (node.nodeType === "VariableDeclaration") {
69
- const getterAbi = contractAbi?.find((abiEntry) => abiEntry.name === node.name);
70
- processVariableDeclarationAstNode(node, fileIdToSourceFile, contract, file, getterAbi);
71
- }
72
- }
73
- }
74
- function processFunctionDefinitionAstNode(functionDefinitionNode, fileIdToSourceFile, contract, file, functionAbis) {
75
- if (functionDefinitionNode.implemented === false) {
76
- return;
77
- }
78
- const functionType = functionDefinitionKindToFunctionType(functionDefinitionNode.kind);
79
- const functionLocation = astSrcToSourceLocation(functionDefinitionNode.src, fileIdToSourceFile);
80
- const visibility = astVisibilityToVisibility(functionDefinitionNode.visibility);
81
- let selector;
82
- if (functionType === model_1.ContractFunctionType.FUNCTION &&
83
- (visibility === model_1.ContractFunctionVisibility.EXTERNAL ||
84
- visibility === model_1.ContractFunctionVisibility.PUBLIC)) {
85
- selector = astFunctionDefinitionToSelector(functionDefinitionNode);
86
- }
87
- // function can be overloaded, match the abi by the selector
88
- const matchingFunctionAbi = functionAbis?.find((functionAbi) => {
89
- if (functionAbi.name === undefined) {
90
- return false;
91
- }
92
- const functionAbiSelector = abi.methodID(functionAbi.name, functionAbi.inputs?.map((input) => input.type) ?? []);
93
- if (selector === undefined || functionAbiSelector === undefined) {
94
- return false;
95
- }
96
- return selector.equals(functionAbiSelector);
97
- });
98
- const paramTypes = matchingFunctionAbi?.inputs?.map((input) => input.type);
99
- const cf = new model_1.ContractFunction(functionDefinitionNode.name, functionType, functionLocation, contract, visibility, functionDefinitionNode.stateMutability === "payable", selector, paramTypes);
100
- if (contract !== undefined) {
101
- contract.addLocalFunction(cf);
102
- }
103
- file.addFunction(cf);
104
- }
105
- function processModifierDefinitionAstNode(modifierDefinitionNode, fileIdToSourceFile, contract, file) {
106
- const functionLocation = astSrcToSourceLocation(modifierDefinitionNode.src, fileIdToSourceFile);
107
- const cf = new model_1.ContractFunction(modifierDefinitionNode.name, model_1.ContractFunctionType.MODIFIER, functionLocation, contract);
108
- contract.addLocalFunction(cf);
109
- file.addFunction(cf);
110
- }
111
- function canonicalAbiTypeForElementaryOrUserDefinedTypes(keyType) {
112
- if (isElementaryType(keyType)) {
113
- return toCanonicalAbiType(keyType.name);
114
- }
115
- if (isEnumType(keyType)) {
116
- return "uint256";
117
- }
118
- if (isContractType(keyType)) {
119
- return "address";
120
- }
121
- return undefined;
122
- }
123
- function getPublicVariableSelectorFromDeclarationAstNode(variableDeclaration) {
124
- if (variableDeclaration.functionSelector !== undefined) {
125
- return Buffer.from(variableDeclaration.functionSelector, "hex");
126
- }
127
- const paramTypes = [];
128
- // VariableDeclaration nodes for function parameters or state variables will always
129
- // have their typeName fields defined.
130
- let nextType = variableDeclaration.typeName;
131
- while (true) {
132
- if (nextType.nodeType === "Mapping") {
133
- const canonicalType = canonicalAbiTypeForElementaryOrUserDefinedTypes(nextType.keyType);
134
- paramTypes.push(canonicalType);
135
- nextType = nextType.valueType;
136
- }
137
- else {
138
- if (nextType.nodeType === "ArrayTypeName") {
139
- paramTypes.push("uint256");
140
- }
141
- break;
142
- }
143
- }
144
- return abi.methodID(variableDeclaration.name, paramTypes);
145
- }
146
- function processVariableDeclarationAstNode(variableDeclarationNode, fileIdToSourceFile, contract, file, getterAbi) {
147
- const visibility = astVisibilityToVisibility(variableDeclarationNode.visibility);
148
- // Variables can't be external
149
- if (visibility !== model_1.ContractFunctionVisibility.PUBLIC) {
150
- return;
151
- }
152
- const functionLocation = astSrcToSourceLocation(variableDeclarationNode.src, fileIdToSourceFile);
153
- const paramTypes = getterAbi?.inputs?.map((input) => input.type);
154
- const cf = new model_1.ContractFunction(variableDeclarationNode.name, model_1.ContractFunctionType.GETTER, functionLocation, contract, visibility, false, // Getters aren't payable
155
- getPublicVariableSelectorFromDeclarationAstNode(variableDeclarationNode), paramTypes);
156
- contract.addLocalFunction(cf);
157
- file.addFunction(cf);
158
- }
159
- function applyContractsInheritance(contractIdToContract, contractIdToLinearizedBaseContractIds) {
160
- for (const [cid, contract] of contractIdToContract.entries()) {
161
- const inheritanceIds = contractIdToLinearizedBaseContractIds.get(cid);
162
- for (const baseId of inheritanceIds) {
163
- const baseContract = contractIdToContract.get(baseId);
164
- if (baseContract === undefined) {
165
- // This list includes interface, which we don't model
166
- continue;
167
- }
168
- contract.addNextLinearizedBaseContract(baseContract);
169
- }
170
- }
171
- }
172
- function decodeBytecodes(solcVersion, compilerOutput, fileIdToSourceFile, contractIdToContract) {
173
- const bytecodes = [];
174
- for (const contract of contractIdToContract.values()) {
175
- const contractFile = contract.location.file.sourceName;
176
- const contractEvmOutput = compilerOutput.contracts[contractFile][contract.name].evm;
177
- const contractAbiOutput = compilerOutput.contracts[contractFile][contract.name].abi;
178
- for (const abiItem of contractAbiOutput) {
179
- if (abiItem.type === "error") {
180
- const customError = model_1.CustomError.fromABI(abiItem.name, abiItem.inputs);
181
- if (customError !== undefined) {
182
- contract.addCustomError(customError);
183
- }
184
- else {
185
- log(`Couldn't build CustomError for error '${abiItem.name}'`);
186
- }
187
- }
188
- }
189
- // This is an abstract contract
190
- if (contractEvmOutput.bytecode.object === "") {
191
- continue;
192
- }
193
- const deploymentBytecode = decodeEvmBytecode(contract, solcVersion, true, contractEvmOutput.bytecode, fileIdToSourceFile);
194
- const runtimeBytecode = decodeEvmBytecode(contract, solcVersion, false, contractEvmOutput.deployedBytecode, fileIdToSourceFile);
195
- bytecodes.push(deploymentBytecode);
196
- bytecodes.push(runtimeBytecode);
197
- }
198
- return bytecodes;
199
- }
200
- function decodeEvmBytecode(contract, solcVersion, isDeployment, compilerBytecode, fileIdToSourceFile) {
201
- const libraryAddressPositions = (0, library_utils_1.getLibraryAddressPositions)(compilerBytecode);
202
- const immutableReferences = compilerBytecode.immutableReferences !== undefined
203
- ? Object.values(compilerBytecode.immutableReferences).reduce((previousValue, currentValue) => [...previousValue, ...currentValue], [])
204
- : [];
205
- const normalizedCode = (0, library_utils_1.normalizeCompilerOutputBytecode)(compilerBytecode.object, libraryAddressPositions);
206
- const instructions = (0, source_maps_1.decodeInstructions)(normalizedCode, compilerBytecode.sourceMap, fileIdToSourceFile, isDeployment);
207
- return new model_1.Bytecode(contract, isDeployment, normalizedCode, instructions, libraryAddressPositions, immutableReferences, solcVersion);
208
- }
209
- function astSrcToSourceLocation(src, fileIdToSourceFile) {
210
- const [offset, length, fileId] = src.split(":").map((p) => +p);
211
- const file = fileIdToSourceFile.get(fileId);
212
- if (file === undefined) {
213
- return undefined;
214
- }
215
- return new model_1.SourceLocation(file, offset, length);
216
- }
217
- function contractKindToContractType(contractKind) {
218
- if (contractKind === "library") {
219
- return model_1.ContractType.LIBRARY;
220
- }
221
- if (contractKind === "contract") {
222
- return model_1.ContractType.CONTRACT;
223
- }
224
- return undefined;
225
- }
226
- function astVisibilityToVisibility(visibility) {
227
- if (visibility === "private") {
228
- return model_1.ContractFunctionVisibility.PRIVATE;
229
- }
230
- if (visibility === "internal") {
231
- return model_1.ContractFunctionVisibility.INTERNAL;
232
- }
233
- if (visibility === "public") {
234
- return model_1.ContractFunctionVisibility.PUBLIC;
235
- }
236
- return model_1.ContractFunctionVisibility.EXTERNAL;
237
- }
238
- function functionDefinitionKindToFunctionType(kind) {
239
- if (kind === "constructor") {
240
- return model_1.ContractFunctionType.CONSTRUCTOR;
241
- }
242
- if (kind === "fallback") {
243
- return model_1.ContractFunctionType.FALLBACK;
244
- }
245
- if (kind === "receive") {
246
- return model_1.ContractFunctionType.RECEIVE;
247
- }
248
- if (kind === "freeFunction") {
249
- return model_1.ContractFunctionType.FREE_FUNCTION;
250
- }
251
- return model_1.ContractFunctionType.FUNCTION;
252
- }
253
- function astFunctionDefinitionToSelector(functionDefinition) {
254
- const paramTypes = [];
255
- // The function selector is available in solc versions >=0.6.0
256
- if (functionDefinition.functionSelector !== undefined) {
257
- return Buffer.from(functionDefinition.functionSelector, "hex");
258
- }
259
- for (const param of functionDefinition.parameters.parameters) {
260
- if (isContractType(param)) {
261
- paramTypes.push("address");
262
- continue;
263
- }
264
- // TODO: implement ABIv2 structs parsing
265
- // This might mean we need to parse struct definitions before
266
- // resolving types and trying to calculate function selectors.
267
- // if (isStructType(param)) {
268
- // paramTypes.push(something);
269
- // continue;
270
- // }
271
- if (isEnumType(param)) {
272
- // TODO: If the enum has >= 256 elements this will fail. It should be a uint16. This is
273
- // complicated, as enums can be inherited. Fortunately, if multiple parent contracts
274
- // define the same enum, solc fails to compile.
275
- paramTypes.push("uint8");
276
- continue;
277
- }
278
- // The rest of the function parameters always have their typeName node defined
279
- const typename = param.typeName;
280
- if (typename.nodeType === "ArrayTypeName" ||
281
- typename.nodeType === "FunctionTypeName" ||
282
- typename.nodeType === "Mapping") {
283
- paramTypes.push(typename.typeDescriptions.typeString);
284
- continue;
285
- }
286
- paramTypes.push(toCanonicalAbiType(typename.name));
287
- }
288
- return abi.methodID(functionDefinition.name, paramTypes);
289
- }
290
- function isContractType(param) {
291
- return ((param.typeName?.nodeType === "UserDefinedTypeName" ||
292
- param?.nodeType === "UserDefinedTypeName") &&
293
- param.typeDescriptions?.typeString !== undefined &&
294
- param.typeDescriptions.typeString.startsWith("contract "));
295
- }
296
- function isEnumType(param) {
297
- return ((param.typeName?.nodeType === "UserDefinedTypeName" ||
298
- param?.nodeType === "UserDefinedTypeName") &&
299
- param.typeDescriptions?.typeString !== undefined &&
300
- param.typeDescriptions.typeString.startsWith("enum "));
301
- }
302
- function isElementaryType(param) {
303
- return (param.type === "ElementaryTypeName" ||
304
- param.nodeType === "ElementaryTypeName");
305
- }
306
- function toCanonicalAbiType(type) {
307
- if (type.startsWith("int[")) {
308
- return `int256${type.slice(3)}`;
309
- }
310
- if (type === "int") {
311
- return "int256";
312
- }
313
- if (type.startsWith("uint[")) {
314
- return `uint256${type.slice(4)}`;
315
- }
316
- if (type === "uint") {
317
- return "uint256";
318
- }
319
- if (type.startsWith("fixed[")) {
320
- return `fixed128x128${type.slice(5)}`;
321
- }
322
- if (type === "fixed") {
323
- return "fixed128x128";
324
- }
325
- if (type.startsWith("ufixed[")) {
326
- return `ufixed128x128${type.slice(6)}`;
327
- }
328
- if (type === "ufixed") {
329
- return "ufixed128x128";
330
- }
331
- return type;
332
- }
333
- function correctSelectors(bytecodes, compilerOutput) {
334
- for (const bytecode of bytecodes) {
335
- if (bytecode.isDeployment) {
336
- continue;
337
- }
338
- const contract = bytecode.contract;
339
- const methodIdentifiers = compilerOutput.contracts[contract.location.file.sourceName][contract.name]
340
- .evm.methodIdentifiers;
341
- for (const [signature, hexSelector] of Object.entries(methodIdentifiers)) {
342
- const functionName = signature.slice(0, signature.indexOf("("));
343
- const selector = Buffer.from(hexSelector, "hex");
344
- const contractFunction = contract.getFunctionFromSelector(selector);
345
- if (contractFunction !== undefined) {
346
- continue;
347
- }
348
- const fixedSelector = contract.correctSelector(functionName, selector);
349
- if (!fixedSelector) {
350
- // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error
351
- throw new Error(`Failed to compute the selector one or more implementations of ${contract.name}#${functionName}. Hardhat Network can automatically fix this problem if you don't use function overloading.`);
352
- }
353
- }
354
- }
355
- }
356
7
  //# sourceMappingURL=compiler-to-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler-to-model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/compiler-to-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler-to-model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/compiler-to-model.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAE9D,MAAM,EAAE,8BAA8B,EAAE,GAAG,IAAA,6BAAmB,EAC5D,sBAAsB,CACkB,CAAC;AAElC,wEAA8B"}
@@ -1,8 +1,3 @@
1
- import { CallMessageTrace, CreateMessageTrace, MessageTrace, PrecompileMessageTrace } from "./message-trace";
2
- import { SolidityStackTrace } from "./solidity-stack-trace";
3
- export declare function printMessageTrace(trace: MessageTrace, depth?: number): void;
4
- export declare function printCreateTrace(trace: CreateMessageTrace, depth: number): void;
5
- export declare function printPrecompileTrace(trace: PrecompileMessageTrace, depth: number): void;
6
- export declare function printCallTrace(trace: CallMessageTrace, depth: number): void;
7
- export declare function printStackTrace(trace: SolidityStackTrace): void;
1
+ declare const printMessageTrace: typeof import("@nomicfoundation/edr").printMessageTrace, printStackTrace: typeof import("@nomicfoundation/edr").printStackTrace;
2
+ export { printMessageTrace, printStackTrace };
8
3
  //# sourceMappingURL=debug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"AAGA,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,QA8BxD"}
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"AAEA,QAAA,MAAQ,iBAAiB,2DAAE,eAAe,uDAEA,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC"}
@@ -1,148 +1,8 @@
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
- exports.printStackTrace = exports.printCallTrace = exports.printPrecompileTrace = exports.printCreateTrace = exports.printMessageTrace = void 0;
7
- const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util");
8
- const chalk_1 = __importDefault(require("chalk"));
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
- const MARGIN_SPACE = 6;
14
- function printMessageTrace(trace, depth = 0) {
15
- console.log("");
16
- if ((0, message_trace_1.isCreateTrace)(trace)) {
17
- printCreateTrace(trace, depth);
18
- }
19
- else if ((0, message_trace_1.isPrecompileTrace)(trace)) {
20
- printPrecompileTrace(trace, depth);
21
- }
22
- else {
23
- printCallTrace(trace, depth);
24
- }
25
- console.log("");
26
- }
3
+ exports.printStackTrace = exports.printMessageTrace = void 0;
4
+ const napi_rs_1 = require("../../../common/napi-rs");
5
+ const { printMessageTrace, printStackTrace } = (0, napi_rs_1.requireNapiRsModule)("@nomicfoundation/edr");
27
6
  exports.printMessageTrace = printMessageTrace;
28
- function printCreateTrace(trace, depth) {
29
- const margin = "".padStart(depth * MARGIN_SPACE);
30
- console.log(`${margin}Create trace`);
31
- if (trace.bytecode !== undefined) {
32
- console.log(`${margin} deploying contract: ${trace.bytecode.contract.location.file.sourceName}:${trace.bytecode.contract.name}`);
33
- console.log(`${margin} code: ${(0, ethereumjs_util_1.bytesToHex)(trace.code)}`);
34
- }
35
- else {
36
- console.log(`${margin} unrecognized deployment code: ${(0, ethereumjs_util_1.bytesToHex)(trace.code)}`);
37
- }
38
- console.log(`${margin} value: ${trace.value.toString(10)}`);
39
- if (trace.deployedContract !== undefined) {
40
- console.log(`${margin} contract address: ${(0, ethereumjs_util_1.bytesToHex)(trace.deployedContract)}`);
41
- }
42
- if (trace.exit.isError()) {
43
- console.log(`${margin} error: ${trace.exit.getReason()}`);
44
- // The return data is the deployed-bytecode if there was no error, so we don't show it
45
- console.log(`${margin} returnData: ${(0, ethereumjs_util_1.bytesToHex)(trace.returnData)}`);
46
- }
47
- traceSteps(trace, depth);
48
- }
49
- exports.printCreateTrace = printCreateTrace;
50
- function printPrecompileTrace(trace, depth) {
51
- const margin = "".padStart(depth * MARGIN_SPACE);
52
- console.log(`${margin}Precompile trace`);
53
- console.log(`${margin} precompile number: ${trace.precompile}`);
54
- console.log(`${margin} value: ${trace.value.toString(10)}`);
55
- console.log(`${margin} calldata: ${(0, ethereumjs_util_1.bytesToHex)(trace.calldata)}`);
56
- if (trace.exit.isError()) {
57
- console.log(`${margin} error: ${trace.exit.getReason()}`);
58
- }
59
- console.log(`${margin} returnData: ${(0, ethereumjs_util_1.bytesToHex)(trace.returnData)}`);
60
- }
61
- exports.printPrecompileTrace = printPrecompileTrace;
62
- function printCallTrace(trace, depth) {
63
- const margin = "".padStart(depth * MARGIN_SPACE);
64
- console.log(`${margin}Call trace`);
65
- if (trace.bytecode !== undefined) {
66
- console.log(`${margin} calling contract: ${trace.bytecode.contract.location.file.sourceName}:${trace.bytecode.contract.name}`);
67
- }
68
- else {
69
- console.log(`${margin} unrecognized contract code: ${(0, ethereumjs_util_1.bytesToHex)(trace.code)}`);
70
- console.log(`${margin} contract: ${(0, ethereumjs_util_1.bytesToHex)(trace.address)}`);
71
- }
72
- console.log(`${margin} value: ${trace.value.toString(10)}`);
73
- console.log(`${margin} calldata: ${(0, ethereumjs_util_1.bytesToHex)(trace.calldata)}`);
74
- if (trace.exit.isError()) {
75
- console.log(`${margin} error: ${trace.exit.getReason()}`);
76
- }
77
- console.log(`${margin} returnData: ${(0, ethereumjs_util_1.bytesToHex)(trace.returnData)}`);
78
- traceSteps(trace, depth);
79
- }
80
- exports.printCallTrace = printCallTrace;
81
- function traceSteps(trace, depth) {
82
- const margin = "".padStart(depth * MARGIN_SPACE);
83
- console.log(`${margin} steps:`);
84
- console.log("");
85
- for (const step of trace.steps) {
86
- if ((0, message_trace_1.isEvmStep)(step)) {
87
- const pc = step.pc.toString(10).padStart(3, "0").padStart(5);
88
- if (trace.bytecode !== undefined) {
89
- const inst = trace.bytecode.getInstruction(step.pc);
90
- let location = "";
91
- if (inst.location !== undefined) {
92
- location += inst.location.file.sourceName;
93
- const func = inst.location.getContainingFunction();
94
- if (func !== undefined) {
95
- location += `:${func.contract?.name ?? func.location.file.sourceName}:${func.name}`;
96
- }
97
- location += ` - ${inst.location.offset}:${inst.location.length}`;
98
- }
99
- if ((0, opcodes_1.isJump)(inst.opcode)) {
100
- const jump = inst.jumpType !== model_1.JumpType.NOT_JUMP
101
- ? chalk_1.default.bold(`(${model_1.JumpType[inst.jumpType]})`)
102
- : "";
103
- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]} ${jump}`.padEnd(50), location);
104
- }
105
- else if ((0, opcodes_1.isPush)(inst.opcode)) {
106
- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]} ${(0, ethereumjs_util_1.bytesToHex)(inst.pushData)}`.padEnd(50), location);
107
- }
108
- else {
109
- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]}`.padEnd(50), location);
110
- }
111
- }
112
- else {
113
- console.log(`${margin} ${pc}`);
114
- }
115
- }
116
- else {
117
- printMessageTrace(step, depth + 1);
118
- }
119
- }
120
- }
121
- function flattenSourceReference(sourceReference) {
122
- if (sourceReference === undefined) {
123
- return undefined;
124
- }
125
- return {
126
- ...sourceReference,
127
- file: sourceReference.sourceName,
128
- };
129
- }
130
- function printStackTrace(trace) {
131
- const withDecodedMessages = trace.map((entry) => entry.type === solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR
132
- ? { ...entry, message: entry.message.decodeError() }
133
- : entry);
134
- const withHexAddress = withDecodedMessages.map((entry) => "address" in entry
135
- ? { ...entry, address: (0, ethereumjs_util_1.bytesToHex)(entry.address) }
136
- : entry);
137
- const withTextualType = withHexAddress.map((entry) => ({
138
- ...entry,
139
- type: solidity_stack_trace_1.StackTraceEntryType[entry.type],
140
- }));
141
- const withFlattenedSourceReferences = withTextualType.map((entry) => ({
142
- ...entry,
143
- sourceReference: flattenSourceReference(entry.sourceReference),
144
- }));
145
- console.log(JSON.stringify(withFlattenedSourceReferences, (key, value) => (typeof value === "bigint" ? value.toString() : value), 2));
146
- }
147
7
  exports.printStackTrace = printStackTrace;
148
8
  //# sourceMappingURL=debug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAE9D,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAChE,sBAAsB,CACkB,CAAC;AAElC,8CAAiB;AAAE,0CAAe"}
@@ -1,12 +1,3 @@
1
- /// <reference types="node" />
2
- import { CompilerOutputBytecode } from "../../../types";
3
- export declare function getLibraryAddressPositions(bytecodeOutput: CompilerOutputBytecode): number[];
4
- export declare function normalizeCompilerOutputBytecode(compilerOutputBytecodeObject: string, addressesPositions: number[]): Buffer;
5
- export declare function linkHexStringBytecode(code: string, address: string, position: number): string;
6
- export declare function zeroOutAddresses(code: Uint8Array, addressesPositions: number[]): Uint8Array;
7
- export declare function zeroOutSlices(code: Uint8Array, slices: Array<{
8
- start: number;
9
- length: number;
10
- }>): Uint8Array;
11
- export declare function normalizeLibraryRuntimeBytecodeIfNecessary(code: Uint8Array): Uint8Array;
1
+ declare const linkHexStringBytecode: typeof import("@nomicfoundation/edr").linkHexStringBytecode;
2
+ export { linkHexStringBytecode };
12
3
  //# sourceMappingURL=library-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library-utils.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/library-utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,sBAAsB,GACrC,MAAM,EAAE,CAWV;AAED,wBAAgB,+BAA+B,CAC7C,4BAA4B,EAAE,MAAM,EACpC,kBAAkB,EAAE,MAAM,EAAE,GAC3B,MAAM,CAWR;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,UAWjB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,UAAU,CAOZ;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,UAAU,CAUZ;AAED,wBAAgB,0CAA0C,CACxD,IAAI,EAAE,UAAU,GACf,UAAU,CAWZ"}
1
+ {"version":3,"file":"library-utils.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/library-utils.ts"],"names":[],"mappings":"AAEA,QAAA,MAAQ,qBAAqB,6DAEa,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,CAAC"}