From b14ec9652cf7054119af925cf498b4a6a247064d Mon Sep 17 00:00:00 2001 From: Igor Matuszewski Date: Mon, 22 Jul 2024 14:59:16 +0200 Subject: [PATCH] patch(hardhat): Use the rewritten compiler to model logic from EDR See https://github.com/NomicFoundation/hardhat/commit/49c66b6947283d9c9414f5e6faf2f94dcf05cc58 --- patches/gen-hardhat-patches.sh | 2 + patches/hardhat@2.22.6.patch | 3781 ++++++++++++++++++++++++++++++-- pnpm-lock.yaml | 24 +- 3 files changed, 3566 insertions(+), 241 deletions(-) diff --git a/patches/gen-hardhat-patches.sh b/patches/gen-hardhat-patches.sh index 83d52b6ba..ad9a9e905 100755 --- a/patches/gen-hardhat-patches.sh +++ b/patches/gen-hardhat-patches.sh @@ -20,6 +20,8 @@ COMMITS=( f944cd54eb65d78f6ce54248fb5c573aadc7281c # refactor: Remove dead code and hide unnecessarily public properties 5739893bf382b4e937b44995ca7917cbbd39de12 + # refactor: Re-use the compiler to model and opcodes logic from EDR + 49c66b6947283d9c9414f5e6faf2f94dcf05cc58 ) for commit in "${COMMITS[@]}"; do diff --git a/patches/hardhat@2.22.6.patch b/patches/hardhat@2.22.6.patch index 997962546..29b9eb5f1 100644 --- a/patches/hardhat@2.22.6.patch +++ b/patches/hardhat@2.22.6.patch @@ -100,104 +100,1098 @@ index 7211e63f130c7264c0e127159cb008a21635e88d..38da993e39ce7f8c24425e0e7f7c04a6 \ No newline at end of file +{"version":3,"file":"exit.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/vm/exit.ts"],"names":[],"mappings":";;;AAEA,wDAAiE;AAEjE,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,2CAAM,CAAA;IACN,mDAAU,CAAA;IACV,2DAAc,CAAA;IACd,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,+EAAwB,CAAA;IACxB,+DAAgB,CAAA;IAChB,qEAAmB,CAAA;AACrB,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,MAAa,IAAI;IACR,MAAM,CAAC,oBAAoB,CAAC,MAAqB;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,6BAAmB,EAC3C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,MAAM,EAAE;YACd,gCAAwB;YACxB,kCAA0B;YAC1B,wCAAgC;YAChC;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrC;QAED,MAAM,gBAAgB,GAAU,MAAM,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAAC,IAAqB;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6BAAmB,EAC7C,sBAAsB,CACkB,CAAC;QAE3C,QAAQ,IAAI,EAAE;YACZ;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAEvC,4CAAoC;YACpC,6CAAqC;YACrC,8DAA8D;YAC9D;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAE5C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAE7C;gBACE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAErD,OAAO,CAAC,CAAC;gBACP,sFAAsF;gBACtF,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;aAC5D;SACF;IACH,CAAC;IAED,YAAmB,IAAc;QAAd,SAAI,GAAJ,IAAI,CAAU;IAAG,CAAC;IAE9B,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC;IACxC,CAAC;IAEM,SAAS;QACd,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,SAAS,CAAC;YACnB,KAAK,QAAQ,CAAC,MAAM;gBAClB,OAAO,UAAU,CAAC;YACpB,KAAK,QAAQ,CAAC,UAAU;gBACtB,OAAO,YAAY,CAAC;YACtB,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,cAAc;gBAC1B,OAAO,gBAAgB,CAAC;YAC1B,KAAK,QAAQ,CAAC,eAAe;gBAC3B,OAAO,iBAAiB,CAAC;YAC3B,KAAK,QAAQ,CAAC,wBAAwB;gBACpC,OAAO,0BAA0B,CAAC;YACpC,KAAK,QAAQ,CAAC,gBAAgB;gBAC5B,OAAO,kBAAkB,CAAC;YAC5B,KAAK,QAAQ,CAAC,mBAAmB;gBAC/B,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,gBAAgB,GAAU,IAAI,CAAC,IAAI,CAAC;IAC5C,CAAC;CACF;AA9ED,oBA8EC"} \ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/compiler-to-model.d.ts b/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +index 7f73bc6ea06ac5a91320f8695ec51c5710d8f67a..91c537ec85d9d469a2bb185e510bc6cc9ae5394a 100644 +--- a/internal/hardhat-network/stack-traces/compiler-to-model.d.ts ++++ b/internal/hardhat-network/stack-traces/compiler-to-model.d.ts +@@ -1,4 +1,2 @@ +-import { CompilerInput, CompilerOutput } from "../../../types"; +-import { Bytecode } from "./model"; +-export declare function createModelsAndDecodeBytecodes(solcVersion: string, compilerInput: CompilerInput, compilerOutput: CompilerOutput): Bytecode[]; ++export { createModelsAndDecodeBytecodes } from "@nomicfoundation/edr"; + //# sourceMappingURL=compiler-to-model.d.ts.map +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map b/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +index 5d6df428138fcf902212b0d0e47ca8c809cfa893..cff61dd4c64dda2f0f3bb290b53f109d322fd586 100644 +--- a/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map ++++ b/internal/hardhat-network/stack-traces/compiler-to-model.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"compiler-to-model.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/compiler-to-model.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,cAAc,EAEf,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,QAAQ,EAST,MAAM,SAAS,CAAC;AAgBjB,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,QAAQ,EAAE,CAqBZ"} +\ No newline at end of file ++{"version":3,"file":"compiler-to-model.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/compiler-to-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC"} +\ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/compiler-to-model.js b/internal/hardhat-network/stack-traces/compiler-to-model.js -index 29b4b8d1e0d42f70328c5c13963aaad25530f0c1..4ca4c93b3f1c766051014579461133bdaba3b29e 100644 +index 29b4b8d1e0d42f70328c5c13963aaad25530f0c1..1272f28656532906f31dd4354a2885e21e3cfcf5 100644 --- a/internal/hardhat-network/stack-traces/compiler-to-model.js +++ b/internal/hardhat-network/stack-traces/compiler-to-model.js -@@ -56,7 +56,6 @@ function processContractAstNode(file, contractNode, fileIdToSourceFile, contract - const contract = new model_1.Contract(contractNode.name, contractType, contractLocation); - contractIdToContract.set(contractNode.id, contract); - contractIdToLinearizedBaseContractIds.set(contractNode.id, contractNode.linearizedBaseContracts); +@@ -1,356 +1,6 @@ + "use strict"; +-var __importDefault = (this && this.__importDefault) || function (mod) { +- return (mod && mod.__esModule) ? mod : { "default": mod }; +-}; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createModelsAndDecodeBytecodes = void 0; +-const debug_1 = __importDefault(require("debug")); +-const library_utils_1 = require("./library-utils"); +-const model_1 = require("./model"); +-const source_maps_1 = require("./source-maps"); +-const abi = require("ethereumjs-abi"); +-const log = (0, debug_1.default)("hardhat:core:hardhat-network:compiler-to-model"); +-function createModelsAndDecodeBytecodes(solcVersion, compilerInput, compilerOutput) { +- const fileIdToSourceFile = new Map(); +- const contractIdToContract = new Map(); +- createSourcesModelFromAst(compilerOutput, compilerInput, fileIdToSourceFile, contractIdToContract); +- const bytecodes = decodeBytecodes(solcVersion, compilerOutput, fileIdToSourceFile, contractIdToContract); +- correctSelectors(bytecodes, compilerOutput); +- return bytecodes; +-} +-exports.createModelsAndDecodeBytecodes = createModelsAndDecodeBytecodes; +-function createSourcesModelFromAst(compilerOutput, compilerInput, fileIdToSourceFile, contractIdToContract) { +- const contractIdToLinearizedBaseContractIds = new Map(); +- // Create a `sourceName => contract => abi` mapping +- const sourceNameToContractToAbi = new Map(); +- for (const [sourceName, contracts] of Object.entries(compilerOutput.contracts)) { +- const contractToAbi = new Map(); +- sourceNameToContractToAbi.set(sourceName, contractToAbi); +- for (const [contractName, contract] of Object.entries(contracts)) { +- contractToAbi.set(contractName, contract.abi); +- } +- } +- for (const [sourceName, source] of Object.entries(compilerOutput.sources)) { +- const contractToAbi = sourceNameToContractToAbi.get(sourceName); +- const file = new model_1.SourceFile(sourceName, compilerInput.sources[sourceName].content); +- fileIdToSourceFile.set(source.id, file); +- for (const node of source.ast.nodes) { +- if (node.nodeType === "ContractDefinition") { +- const contractType = contractKindToContractType(node.contractKind); +- if (contractType === undefined) { +- continue; +- } +- const contractAbi = contractToAbi?.get(node.name); +- processContractAstNode(file, node, fileIdToSourceFile, contractType, contractIdToContract, contractIdToLinearizedBaseContractIds, contractAbi); +- } +- // top-level functions +- if (node.nodeType === "FunctionDefinition") { +- processFunctionDefinitionAstNode(node, fileIdToSourceFile, undefined, file); +- } +- } +- } +- applyContractsInheritance(contractIdToContract, contractIdToLinearizedBaseContractIds); +-} +-function processContractAstNode(file, contractNode, fileIdToSourceFile, contractType, contractIdToContract, contractIdToLinearizedBaseContractIds, contractAbi) { +- const contractLocation = astSrcToSourceLocation(contractNode.src, fileIdToSourceFile); +- const contract = new model_1.Contract(contractNode.name, contractType, contractLocation); +- contractIdToContract.set(contractNode.id, contract); +- contractIdToLinearizedBaseContractIds.set(contractNode.id, contractNode.linearizedBaseContracts); - file.addContract(contract); - for (const node of contractNode.nodes) { - if (node.nodeType === "FunctionDefinition") { - const functionAbis = contractAbi?.filter((abiEntry) => abiEntry.name === node.name); +- for (const node of contractNode.nodes) { +- if (node.nodeType === "FunctionDefinition") { +- const functionAbis = contractAbi?.filter((abiEntry) => abiEntry.name === node.name); +- processFunctionDefinitionAstNode(node, fileIdToSourceFile, contract, file, functionAbis); +- } +- else if (node.nodeType === "ModifierDefinition") { +- processModifierDefinitionAstNode(node, fileIdToSourceFile, contract, file); +- } +- else if (node.nodeType === "VariableDeclaration") { +- const getterAbi = contractAbi?.find((abiEntry) => abiEntry.name === node.name); +- processVariableDeclarationAstNode(node, fileIdToSourceFile, contract, file, getterAbi); +- } +- } +-} +-function processFunctionDefinitionAstNode(functionDefinitionNode, fileIdToSourceFile, contract, file, functionAbis) { +- if (functionDefinitionNode.implemented === false) { +- return; +- } +- const functionType = functionDefinitionKindToFunctionType(functionDefinitionNode.kind); +- const functionLocation = astSrcToSourceLocation(functionDefinitionNode.src, fileIdToSourceFile); +- const visibility = astVisibilityToVisibility(functionDefinitionNode.visibility); +- let selector; +- if (functionType === model_1.ContractFunctionType.FUNCTION && +- (visibility === model_1.ContractFunctionVisibility.EXTERNAL || +- visibility === model_1.ContractFunctionVisibility.PUBLIC)) { +- selector = astFunctionDefinitionToSelector(functionDefinitionNode); +- } +- // function can be overloaded, match the abi by the selector +- const matchingFunctionAbi = functionAbis?.find((functionAbi) => { +- if (functionAbi.name === undefined) { +- return false; +- } +- const functionAbiSelector = abi.methodID(functionAbi.name, functionAbi.inputs?.map((input) => input.type) ?? []); +- if (selector === undefined || functionAbiSelector === undefined) { +- return false; +- } +- return selector.equals(functionAbiSelector); +- }); +- const paramTypes = matchingFunctionAbi?.inputs?.map((input) => input.type); +- const cf = new model_1.ContractFunction(functionDefinitionNode.name, functionType, functionLocation, contract, visibility, functionDefinitionNode.stateMutability === "payable", selector, paramTypes); +- if (contract !== undefined) { +- contract.addLocalFunction(cf); +- } +- file.addFunction(cf); +-} +-function processModifierDefinitionAstNode(modifierDefinitionNode, fileIdToSourceFile, contract, file) { +- const functionLocation = astSrcToSourceLocation(modifierDefinitionNode.src, fileIdToSourceFile); +- const cf = new model_1.ContractFunction(modifierDefinitionNode.name, model_1.ContractFunctionType.MODIFIER, functionLocation, contract); +- contract.addLocalFunction(cf); +- file.addFunction(cf); +-} +-function canonicalAbiTypeForElementaryOrUserDefinedTypes(keyType) { +- if (isElementaryType(keyType)) { +- return toCanonicalAbiType(keyType.name); +- } +- if (isEnumType(keyType)) { +- return "uint256"; +- } +- if (isContractType(keyType)) { +- return "address"; +- } +- return undefined; +-} +-function getPublicVariableSelectorFromDeclarationAstNode(variableDeclaration) { +- if (variableDeclaration.functionSelector !== undefined) { +- return Buffer.from(variableDeclaration.functionSelector, "hex"); +- } +- const paramTypes = []; +- // VariableDeclaration nodes for function parameters or state variables will always +- // have their typeName fields defined. +- let nextType = variableDeclaration.typeName; +- while (true) { +- if (nextType.nodeType === "Mapping") { +- const canonicalType = canonicalAbiTypeForElementaryOrUserDefinedTypes(nextType.keyType); +- paramTypes.push(canonicalType); +- nextType = nextType.valueType; +- } +- else { +- if (nextType.nodeType === "ArrayTypeName") { +- paramTypes.push("uint256"); +- } +- break; +- } +- } +- return abi.methodID(variableDeclaration.name, paramTypes); +-} +-function processVariableDeclarationAstNode(variableDeclarationNode, fileIdToSourceFile, contract, file, getterAbi) { +- const visibility = astVisibilityToVisibility(variableDeclarationNode.visibility); +- // Variables can't be external +- if (visibility !== model_1.ContractFunctionVisibility.PUBLIC) { +- return; +- } +- const functionLocation = astSrcToSourceLocation(variableDeclarationNode.src, fileIdToSourceFile); +- const paramTypes = getterAbi?.inputs?.map((input) => input.type); +- const cf = new model_1.ContractFunction(variableDeclarationNode.name, model_1.ContractFunctionType.GETTER, functionLocation, contract, visibility, false, // Getters aren't payable +- getPublicVariableSelectorFromDeclarationAstNode(variableDeclarationNode), paramTypes); +- contract.addLocalFunction(cf); +- file.addFunction(cf); +-} +-function applyContractsInheritance(contractIdToContract, contractIdToLinearizedBaseContractIds) { +- for (const [cid, contract] of contractIdToContract.entries()) { +- const inheritanceIds = contractIdToLinearizedBaseContractIds.get(cid); +- for (const baseId of inheritanceIds) { +- const baseContract = contractIdToContract.get(baseId); +- if (baseContract === undefined) { +- // This list includes interface, which we don't model +- continue; +- } +- contract.addNextLinearizedBaseContract(baseContract); +- } +- } +-} +-function decodeBytecodes(solcVersion, compilerOutput, fileIdToSourceFile, contractIdToContract) { +- const bytecodes = []; +- for (const contract of contractIdToContract.values()) { +- const contractFile = contract.location.file.sourceName; +- const contractEvmOutput = compilerOutput.contracts[contractFile][contract.name].evm; +- const contractAbiOutput = compilerOutput.contracts[contractFile][contract.name].abi; +- for (const abiItem of contractAbiOutput) { +- if (abiItem.type === "error") { +- const customError = model_1.CustomError.fromABI(abiItem.name, abiItem.inputs); +- if (customError !== undefined) { +- contract.addCustomError(customError); +- } +- else { +- log(`Couldn't build CustomError for error '${abiItem.name}'`); +- } +- } +- } +- // This is an abstract contract +- if (contractEvmOutput.bytecode.object === "") { +- continue; +- } +- const deploymentBytecode = decodeEvmBytecode(contract, solcVersion, true, contractEvmOutput.bytecode, fileIdToSourceFile); +- const runtimeBytecode = decodeEvmBytecode(contract, solcVersion, false, contractEvmOutput.deployedBytecode, fileIdToSourceFile); +- bytecodes.push(deploymentBytecode); +- bytecodes.push(runtimeBytecode); +- } +- return bytecodes; +-} +-function decodeEvmBytecode(contract, solcVersion, isDeployment, compilerBytecode, fileIdToSourceFile) { +- const libraryAddressPositions = (0, library_utils_1.getLibraryAddressPositions)(compilerBytecode); +- const immutableReferences = compilerBytecode.immutableReferences !== undefined +- ? Object.values(compilerBytecode.immutableReferences).reduce((previousValue, currentValue) => [...previousValue, ...currentValue], []) +- : []; +- const normalizedCode = (0, library_utils_1.normalizeCompilerOutputBytecode)(compilerBytecode.object, libraryAddressPositions); +- const instructions = (0, source_maps_1.decodeInstructions)(normalizedCode, compilerBytecode.sourceMap, fileIdToSourceFile, isDeployment); +- return new model_1.Bytecode(contract, isDeployment, normalizedCode, instructions, libraryAddressPositions, immutableReferences, solcVersion); +-} +-function astSrcToSourceLocation(src, fileIdToSourceFile) { +- const [offset, length, fileId] = src.split(":").map((p) => +p); +- const file = fileIdToSourceFile.get(fileId); +- if (file === undefined) { +- return undefined; +- } +- return new model_1.SourceLocation(file, offset, length); +-} +-function contractKindToContractType(contractKind) { +- if (contractKind === "library") { +- return model_1.ContractType.LIBRARY; +- } +- if (contractKind === "contract") { +- return model_1.ContractType.CONTRACT; +- } +- return undefined; +-} +-function astVisibilityToVisibility(visibility) { +- if (visibility === "private") { +- return model_1.ContractFunctionVisibility.PRIVATE; +- } +- if (visibility === "internal") { +- return model_1.ContractFunctionVisibility.INTERNAL; +- } +- if (visibility === "public") { +- return model_1.ContractFunctionVisibility.PUBLIC; +- } +- return model_1.ContractFunctionVisibility.EXTERNAL; +-} +-function functionDefinitionKindToFunctionType(kind) { +- if (kind === "constructor") { +- return model_1.ContractFunctionType.CONSTRUCTOR; +- } +- if (kind === "fallback") { +- return model_1.ContractFunctionType.FALLBACK; +- } +- if (kind === "receive") { +- return model_1.ContractFunctionType.RECEIVE; +- } +- if (kind === "freeFunction") { +- return model_1.ContractFunctionType.FREE_FUNCTION; +- } +- return model_1.ContractFunctionType.FUNCTION; +-} +-function astFunctionDefinitionToSelector(functionDefinition) { +- const paramTypes = []; +- // The function selector is available in solc versions >=0.6.0 +- if (functionDefinition.functionSelector !== undefined) { +- return Buffer.from(functionDefinition.functionSelector, "hex"); +- } +- for (const param of functionDefinition.parameters.parameters) { +- if (isContractType(param)) { +- paramTypes.push("address"); +- continue; +- } +- // TODO: implement ABIv2 structs parsing +- // This might mean we need to parse struct definitions before +- // resolving types and trying to calculate function selectors. +- // if (isStructType(param)) { +- // paramTypes.push(something); +- // continue; +- // } +- if (isEnumType(param)) { +- // TODO: If the enum has >= 256 elements this will fail. It should be a uint16. This is +- // complicated, as enums can be inherited. Fortunately, if multiple parent contracts +- // define the same enum, solc fails to compile. +- paramTypes.push("uint8"); +- continue; +- } +- // The rest of the function parameters always have their typeName node defined +- const typename = param.typeName; +- if (typename.nodeType === "ArrayTypeName" || +- typename.nodeType === "FunctionTypeName" || +- typename.nodeType === "Mapping") { +- paramTypes.push(typename.typeDescriptions.typeString); +- continue; +- } +- paramTypes.push(toCanonicalAbiType(typename.name)); +- } +- return abi.methodID(functionDefinition.name, paramTypes); +-} +-function isContractType(param) { +- return ((param.typeName?.nodeType === "UserDefinedTypeName" || +- param?.nodeType === "UserDefinedTypeName") && +- param.typeDescriptions?.typeString !== undefined && +- param.typeDescriptions.typeString.startsWith("contract ")); +-} +-function isEnumType(param) { +- return ((param.typeName?.nodeType === "UserDefinedTypeName" || +- param?.nodeType === "UserDefinedTypeName") && +- param.typeDescriptions?.typeString !== undefined && +- param.typeDescriptions.typeString.startsWith("enum ")); +-} +-function isElementaryType(param) { +- return (param.type === "ElementaryTypeName" || +- param.nodeType === "ElementaryTypeName"); +-} +-function toCanonicalAbiType(type) { +- if (type.startsWith("int[")) { +- return `int256${type.slice(3)}`; +- } +- if (type === "int") { +- return "int256"; +- } +- if (type.startsWith("uint[")) { +- return `uint256${type.slice(4)}`; +- } +- if (type === "uint") { +- return "uint256"; +- } +- if (type.startsWith("fixed[")) { +- return `fixed128x128${type.slice(5)}`; +- } +- if (type === "fixed") { +- return "fixed128x128"; +- } +- if (type.startsWith("ufixed[")) { +- return `ufixed128x128${type.slice(6)}`; +- } +- if (type === "ufixed") { +- return "ufixed128x128"; +- } +- return type; +-} +-function correctSelectors(bytecodes, compilerOutput) { +- for (const bytecode of bytecodes) { +- if (bytecode.isDeployment) { +- continue; +- } +- const contract = bytecode.contract; +- const methodIdentifiers = compilerOutput.contracts[contract.location.file.sourceName][contract.name] +- .evm.methodIdentifiers; +- for (const [signature, hexSelector] of Object.entries(methodIdentifiers)) { +- const functionName = signature.slice(0, signature.indexOf("(")); +- const selector = Buffer.from(hexSelector, "hex"); +- const contractFunction = contract.getFunctionFromSelector(selector); +- if (contractFunction !== undefined) { +- continue; +- } +- const fixedSelector = contract.correctSelector(functionName, selector); +- if (!fixedSelector) { +- // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error +- 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.`); +- } +- } +- } +-} ++var edr_1 = require("@nomicfoundation/edr"); ++Object.defineProperty(exports, "createModelsAndDecodeBytecodes", { enumerable: true, get: function () { return edr_1.createModelsAndDecodeBytecodes; } }); + //# sourceMappingURL=compiler-to-model.js.map +\ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/compiler-to-model.js.map b/internal/hardhat-network/stack-traces/compiler-to-model.js.map -index 84ef3e0b7f068a5e3a5757df847a1ae8179719c7..5e2d4c7d2cbc434d764cec30a4f099686ca7a522 100644 +index 84ef3e0b7f068a5e3a5757df847a1ae8179719c7..9cb43155249ed229b4f126252a04884fa5ff4c9c 100644 --- a/internal/hardhat-network/stack-traces/compiler-to-model.js.map +++ b/internal/hardhat-network/stack-traces/compiler-to-model.js.map @@ -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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"} \ No newline at end of file -+{"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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"} ++{"version":3,"file":"compiler-to-model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/compiler-to-model.ts"],"names":[],"mappings":";;;AAAA,4CAAsE;AAA7D,qHAAA,8BAA8B,OAAA"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/contracts-identifier.js b/internal/hardhat-network/stack-traces/contracts-identifier.js +index ba689479fddf360a1520672660c6d153211f80eb..d1574086a3c577e04f513d75fd305e15afc564ed 100644 +--- a/internal/hardhat-network/stack-traces/contracts-identifier.js ++++ b/internal/hardhat-network/stack-traces/contracts-identifier.js +@@ -154,7 +154,7 @@ class ContractsIdentifier { + for (let byte = 0; byte < lastByte;) { + const opcode = code[byte]; + // Solidity always emits REVERT INVALID right before the metadata +- if (opcode === opcodes_1.Opcode.REVERT && code[byte + 1] === opcodes_1.Opcode.INVALID) { ++ if (opcode === 253 /* Opcode.REVERT */ && code[byte + 1] === 254 /* Opcode.INVALID */) { + return true; + } + byte += (0, opcodes_1.getOpcodeLength)(opcode); +diff --git a/internal/hardhat-network/stack-traces/contracts-identifier.js.map b/internal/hardhat-network/stack-traces/contracts-identifier.js.map +index ea3db2d854dbfe213045cba3bd985fa9b558747e..db61d48a2093a97f132425d7ad044838ae029ae0 100644 +--- a/internal/hardhat-network/stack-traces/contracts-identifier.js.map ++++ b/internal/hardhat-network/stack-traces/contracts-identifier.js.map +@@ -1 +1 @@ +-{"version":3,"file":"contracts-identifier.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/contracts-identifier.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"contracts-identifier.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/contracts-identifier.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/debug.js b/internal/hardhat-network/stack-traces/debug.js +index d0ee28a6c8f2eb4137e9dd9858b0c806896659b0..fb59aae80924fb451919ee725cc19c564e5f20c7 100644 +--- a/internal/hardhat-network/stack-traces/debug.js ++++ b/internal/hardhat-network/stack-traces/debug.js +@@ -97,16 +97,16 @@ function traceSteps(trace, depth) { + location += ` - ${inst.location.offset}:${inst.location.length}`; + } + if ((0, opcodes_1.isJump)(inst.opcode)) { +- const jump = inst.jumpType !== model_1.JumpType.NOT_JUMP +- ? chalk_1.default.bold(`(${model_1.JumpType[inst.jumpType]})`) ++ const jump = inst.jumpType !== 0 /* JumpType.NOT_JUMP */ ++ ? chalk_1.default.bold(`(${(0, model_1.jumpTypeToString)(inst.jumpType)})`) + : ""; +- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]} ${jump}`.padEnd(50), location); ++ console.log(`${margin} ${pc} ${(0, opcodes_1.opcodeToString)(inst.opcode)} ${jump}`.padEnd(50), location); + } + else if ((0, opcodes_1.isPush)(inst.opcode)) { +- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]} ${(0, ethereumjs_util_1.bytesToHex)(inst.pushData)}`.padEnd(50), location); ++ console.log(`${margin} ${pc} ${(0, opcodes_1.opcodeToString)(inst.opcode)} ${(0, ethereumjs_util_1.bytesToHex)(inst.pushData)}`.padEnd(50), location); + } + else { +- console.log(`${margin} ${pc} ${opcodes_1.Opcode[inst.opcode]}`.padEnd(50), location); ++ console.log(`${margin} ${pc} ${(0, opcodes_1.opcodeToString)(inst.opcode)}`.padEnd(50), location); + } + } + else { +diff --git a/internal/hardhat-network/stack-traces/debug.js.map b/internal/hardhat-network/stack-traces/debug.js.map +index 5687ea1ba89513386b08df144e97e53d5b21af89..7868ac0d8a00e071f3201757e85bc54eecb8e4e0 100644 +--- a/internal/hardhat-network/stack-traces/debug.js.map ++++ b/internal/hardhat-network/stack-traces/debug.js.map +@@ -1 +1 @@ +-{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/debug.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map b/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +index 3caaa807d4af2ca61beb1ecb3008f1f071736a10..4ebf97785f77dbc0dcbe3e7000886f2cd9f80c4b 100644 +--- a/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map ++++ b/internal/hardhat-network/stack-traces/error-inferrer.d.ts.map +@@ -1 +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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"} +\ No newline at end of file ++{"version":3,"file":"error-inferrer.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/error-inferrer.js b/internal/hardhat-network/stack-traces/error-inferrer.js +index 01d194cc72fe5a33ea86ad45ad28c8d7d507d426..6cccb2b657e7b2c44bf5936aa9099a51129039d2 100644 +--- a/internal/hardhat-network/stack-traces/error-inferrer.js ++++ b/internal/hardhat-network/stack-traces/error-inferrer.js +@@ -13,7 +13,6 @@ const abi_helpers_1 = require("../../util/abi-helpers"); + const return_data_1 = require("../provider/return-data"); + const exit_1 = require("../provider/vm/exit"); + const message_trace_1 = require("./message-trace"); +-const model_1 = require("./model"); + const opcodes_1 = require("./opcodes"); + const solidity_stack_trace_1 = require("./solidity-stack-trace"); + const FIRST_SOLC_VERSION_CREATE_PARAMS_VALIDATION = "0.5.9"; +@@ -218,8 +217,8 @@ class ErrorInferrer { + * Check if the execution stopped with a revert or an invalid opcode. + */ + _checkRevertOrInvalidOpcode(trace, stacktrace, lastInstruction, functionJumpdests, jumpedIntoFunction) { +- if (lastInstruction.opcode !== opcodes_1.Opcode.REVERT && +- lastInstruction.opcode !== opcodes_1.Opcode.INVALID) { ++ if (lastInstruction.opcode !== 253 /* Opcode.REVERT */ && ++ lastInstruction.opcode !== 254 /* Opcode.INVALID */) { + return; + } + const inferredStacktrace = [...stacktrace]; +@@ -234,7 +233,7 @@ class ErrorInferrer { + const failingFunction = lastInstruction.location.getContainingFunction(); + // If the failure is in a modifier we add an entry with the function/constructor + if (failingFunction !== undefined && +- failingFunction.type === model_1.ContractFunctionType.MODIFIER) { ++ failingFunction.type === 5 /* ContractFunctionType.MODIFIER */) { + inferredStacktrace.push(this._getEntryBeforeFailureInModifier(trace, functionJumpdests)); + } + } +@@ -265,7 +264,7 @@ class ErrorInferrer { + type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, + sourceReference: this._getFunctionStartSourceReference(trace, functionSelector), + message: new return_data_1.ReturnData(trace.returnData), +- isInvalidOpcodeError: lastInstruction.opcode === opcodes_1.Opcode.INVALID, ++ isInvalidOpcodeError: lastInstruction.opcode === 254 /* Opcode.INVALID */, + }); + } + else { +@@ -274,7 +273,7 @@ class ErrorInferrer { + type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, + sourceReference: this._getConstructorStartSourceReference(trace), + message: new return_data_1.ReturnData(trace.returnData), +- isInvalidOpcodeError: lastInstruction.opcode === opcodes_1.Opcode.INVALID, ++ isInvalidOpcodeError: lastInstruction.opcode === 254 /* Opcode.INVALID */, + }); + } + return this._fixInitialModifier(trace, inferredStacktrace); +@@ -287,7 +286,7 @@ class ErrorInferrer { + sourceReference: this._getLastSourceReference(trace) ?? + this._getContractStartWithoutFunctionSourceReference(trace), + message: new return_data_1.ReturnData(trace.returnData), +- isInvalidOpcodeError: lastInstruction.opcode === opcodes_1.Opcode.INVALID, ++ isInvalidOpcodeError: lastInstruction.opcode === 254 /* Opcode.INVALID */, + }; + inferredStacktrace.push(revertFrame); + return this._fixInitialModifier(trace, inferredStacktrace); +@@ -374,14 +373,17 @@ class ErrorInferrer { + type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, + sourceReference: this._getFunctionStartSourceReference(trace, failingFunction), + message: new return_data_1.ReturnData(trace.returnData), +- isInvalidOpcodeError: lastInstruction.opcode === opcodes_1.Opcode.INVALID, ++ isInvalidOpcodeError: lastInstruction.opcode === 254 /* Opcode.INVALID */, + }, + ]; + } + } + const calledFunction = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); + if (calledFunction !== undefined) { +- const isValidCalldata = calledFunction.isValidCalldata(trace.calldata.slice(4)); ++ const isValidCalldata = ++ // if we don't know the param types, we just assume that the call is valid ++ calledFunction.paramTypes === undefined || ++ abi_helpers_1.AbiHelpers.isValidCalldata(calledFunction.paramTypes, trace.calldata.slice(4)); + if (!isValidCalldata) { + return [ + { +@@ -442,7 +444,7 @@ class ErrorInferrer { + const firstEntry = stacktrace[0]; + if (firstEntry !== undefined && + firstEntry.type === solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY && +- firstEntry.functionType === model_1.ContractFunctionType.MODIFIER) { ++ firstEntry.functionType === 5 /* ContractFunctionType.MODIFIER */) { + return [ + this._getEntryBeforeInitialModifierCallstackEntry(trace), + ...stacktrace, +@@ -451,7 +453,7 @@ class ErrorInferrer { + return stacktrace; + } + _isDirectLibraryCall(trace) { +- return (trace.depth === 0 && trace.bytecode.contract.type === model_1.ContractType.LIBRARY); ++ return (trace.depth === 0 && trace.bytecode.contract.type === 1 /* ContractType.LIBRARY */); + } + _getDirectLibraryCallErrorStackTrace(trace) { + const func = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); +@@ -479,7 +481,7 @@ class ErrorInferrer { + return false; + } + // Libraries don't have a nonpayable check +- if (trace.bytecode.contract.type === model_1.ContractType.LIBRARY) { ++ if (trace.bytecode.contract.type === 1 /* ContractType.LIBRARY */) { + return false; + } + return calledFunction.isPayable === undefined || !calledFunction.isPayable; +@@ -621,7 +623,7 @@ class ErrorInferrer { + return false; + } + const lastInst = trace.bytecode.getInstruction(lastStep.pc); +- if (lastInst.opcode !== opcodes_1.Opcode.REVERT || lastInst.location !== undefined) { ++ if (lastInst.opcode !== 253 /* Opcode.REVERT */ || lastInst.location !== undefined) { + return false; + } + let hasReadDeploymentCodeSize = false; +@@ -637,7 +639,7 @@ class ErrorInferrer { + !constructor.location.equals(inst.location)) { + return false; + } +- if (inst.opcode === opcodes_1.Opcode.CODESIZE && (0, message_trace_1.isCreateTrace)(trace)) { ++ if (inst.opcode === 56 /* Opcode.CODESIZE */ && (0, message_trace_1.isCreateTrace)(trace)) { + hasReadDeploymentCodeSize = true; + } + } +@@ -648,7 +650,7 @@ class ErrorInferrer { + return { + type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, + sourceReference: this._getConstructorStartSourceReference(trace), +- functionType: model_1.ContractFunctionType.CONSTRUCTOR, ++ functionType: 0 /* ContractFunctionType.CONSTRUCTOR */, + }; + } + const calledFunction = trace.bytecode.contract.getFunctionFromSelector(trace.calldata.slice(0, 4)); +@@ -656,7 +658,7 @@ class ErrorInferrer { + return { + type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, + sourceReference: this._getFunctionStartSourceReference(trace, calledFunction), +- functionType: model_1.ContractFunctionType.FUNCTION, ++ functionType: 1 /* ContractFunctionType.FUNCTION */, + }; + } + // If it failed or made a call from within a modifier, and the selector doesn't match +@@ -664,7 +666,7 @@ class ErrorInferrer { + return { + type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, + sourceReference: this._getFallbackStartSourceReference(trace), +- functionType: model_1.ContractFunctionType.FALLBACK, ++ functionType: 2 /* ContractFunctionType.FALLBACK */, + }; + } + _getLastSourceReference(trace) { +@@ -702,7 +704,7 @@ class ErrorInferrer { + const lastStep = trace.steps[trace.steps.length - 1]; + const lastInstruction = trace.bytecode.getInstruction(lastStep.pc); + return (lastInstruction.location !== undefined && +- lastInstruction.opcode === opcodes_1.Opcode.REVERT && ++ lastInstruction.opcode === 253 /* Opcode.REVERT */ && + func.location.contains(lastInstruction.location)); + } + _instructionWithinFunctionToRevertStackTraceEntry(trace, inst) { +@@ -712,7 +714,7 @@ class ErrorInferrer { + type: solidity_stack_trace_1.StackTraceEntryType.REVERT_ERROR, + sourceReference, + message: new return_data_1.ReturnData(trace.returnData), +- isInvalidOpcodeError: inst.opcode === opcodes_1.Opcode.INVALID, ++ isInvalidOpcodeError: inst.opcode === 254 /* Opcode.INVALID */, + }; + } + _instructionWithinFunctionToUnmappedSolc063RevertErrorStackTraceEntry(trace, inst) { +@@ -750,7 +752,7 @@ class ErrorInferrer { + return false; + } + const lastInst = trace.bytecode.getInstruction(lastStep.pc); +- return (semver_1.default.satisfies(trace.bytecode.compilerVersion, `^${FIRST_SOLC_VERSION_WITH_UNMAPPED_REVERTS}`) && lastInst.opcode === opcodes_1.Opcode.REVERT); ++ return (semver_1.default.satisfies(trace.bytecode.compilerVersion, `^${FIRST_SOLC_VERSION_WITH_UNMAPPED_REVERTS}`) && lastInst.opcode === 253 /* Opcode.REVERT */); + } + // Solidity 0.6.3 unmapped reverts special handling + // For more info: https://github.com/ethereum/solidity/issues/9006 +@@ -811,12 +813,12 @@ class ErrorInferrer { + } + const lastStep = trace.steps[lastIndex]; // We know this is an EVM step + const lastInst = trace.bytecode.getInstruction(lastStep.pc); +- if (lastInst.opcode !== opcodes_1.Opcode.ISZERO) { ++ if (lastInst.opcode !== 21 /* Opcode.ISZERO */) { + return false; + } + const prevStep = trace.steps[lastIndex - 1]; // We know this is an EVM step + const prevInst = trace.bytecode.getInstruction(prevStep.pc); +- return prevInst.opcode === opcodes_1.Opcode.EXTCODESIZE; ++ return prevInst.opcode === 59 /* Opcode.EXTCODESIZE */; + } + _solidity063GetFrameForUnmappedRevertWithinFunction(trace) { + // If we are within a function there's a last valid location. It may +@@ -967,7 +969,7 @@ class ErrorInferrer { + return { + type: solidity_stack_trace_1.StackTraceEntryType.CALLSTACK_ENTRY, + sourceReference: this._getConstructorStartSourceReference(trace), +- functionType: model_1.ContractFunctionType.CONSTRUCTOR, ++ functionType: 0 /* ContractFunctionType.CONSTRUCTOR */, + }; + } + _failsRightAfterCall(trace, callSubtraceStepIndex) { +@@ -976,7 +978,7 @@ class ErrorInferrer { + return false; + } + const lastInst = trace.bytecode.getInstruction(lastStep.pc); +- if (lastInst.opcode !== opcodes_1.Opcode.REVERT) { ++ if (lastInst.opcode !== 253 /* Opcode.REVERT */) { + return false; + } + const callOpcodeStep = trace.steps[callSubtraceStepIndex - 1]; +@@ -1032,7 +1034,7 @@ class ErrorInferrer { + return false; + } + const callInst = trace.bytecode.getInstruction(callStep.pc); +- if (callInst.opcode !== opcodes_1.Opcode.DELEGATECALL) { ++ if (callInst.opcode !== 244 /* Opcode.DELEGATECALL */) { + return false; + } + const subtrace = trace.steps[callSubtraceStepIndex]; +@@ -1046,7 +1048,7 @@ class ErrorInferrer { + if (subtrace.bytecode === undefined) { + return false; + } +- if (subtrace.bytecode.contract.type === model_1.ContractType.LIBRARY) { ++ if (subtrace.bytecode.contract.type === 1 /* ContractType.LIBRARY */) { + return false; + } + if (!(0, ethereumjs_util_1.equalsBytes)(trace.returnData, subtrace.returnData)) { +@@ -1062,14 +1064,14 @@ class ErrorInferrer { + if (inst.location === undefined) { + return false; + } +- if (inst.jumpType === model_1.JumpType.INTO_FUNCTION || +- inst.jumpType === model_1.JumpType.OUTOF_FUNCTION) { ++ if (inst.jumpType === 1 /* JumpType.INTO_FUNCTION */ || ++ inst.jumpType === 2 /* JumpType.OUTOF_FUNCTION */) { + return false; + } + } + const lastStep = trace.steps[trace.steps.length - 1]; + const lastInst = trace.bytecode.getInstruction(lastStep.pc); +- return lastInst.opcode === opcodes_1.Opcode.REVERT; ++ return lastInst.opcode === 253 /* Opcode.REVERT */; + } + _isContractCallRunOutOfGasError(trace, callStepIndex) { + if (trace.returnData.length > 0) { +@@ -1132,7 +1134,7 @@ function instructionToCallstackStackTraceEntry(bytecode, inst) { + inst.location.offset + inst.location.length, + ], + }, +- functionType: model_1.ContractFunctionType.FUNCTION, ++ functionType: 1 /* ContractFunctionType.FUNCTION */, + }; + } + exports.instructionToCallstackStackTraceEntry = instructionToCallstackStackTraceEntry; +@@ -1145,18 +1147,18 @@ function sourceLocationToSourceReference(bytecode, location) { + return undefined; + } + let funcName = func.name; +- if (func.type === model_1.ContractFunctionType.CONSTRUCTOR) { ++ if (func.type === 0 /* ContractFunctionType.CONSTRUCTOR */) { + funcName = solidity_stack_trace_1.CONSTRUCTOR_FUNCTION_NAME; + } +- else if (func.type === model_1.ContractFunctionType.FALLBACK) { ++ else if (func.type === 2 /* ContractFunctionType.FALLBACK */) { + funcName = solidity_stack_trace_1.FALLBACK_FUNCTION_NAME; + } +- else if (func.type === model_1.ContractFunctionType.RECEIVE) { ++ else if (func.type === 3 /* ContractFunctionType.RECEIVE */) { + funcName = solidity_stack_trace_1.RECEIVE_FUNCTION_NAME; + } + return { + function: funcName, +- contract: func.type === model_1.ContractFunctionType.FREE_FUNCTION ++ contract: func.type === 6 /* ContractFunctionType.FREE_FUNCTION */ + ? undefined + : bytecode.contract.name, + sourceName: func.location.file.sourceName, +diff --git a/internal/hardhat-network/stack-traces/error-inferrer.js.map b/internal/hardhat-network/stack-traces/error-inferrer.js.map +index eeba5c914068055d7cd9d7db13a741a02c44a378..9c798e70dfc67081a373d5f090260114e5c9c2ce 100644 +--- a/internal/hardhat-network/stack-traces/error-inferrer.js.map ++++ b/internal/hardhat-network/stack-traces/error-inferrer.js.map +@@ -1 +1 @@ +-{"version":3,"file":"error-inferrer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"error-inferrer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/error-inferrer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/library-utils.d.ts b/internal/hardhat-network/stack-traces/library-utils.d.ts +index 276b7c9d5556f1d7f62ddb07330bfb47f9dfaed8..0d369f51dc42a0fa5cc476ebebcea82660bd9a0d 100644 +--- a/internal/hardhat-network/stack-traces/library-utils.d.ts ++++ b/internal/hardhat-network/stack-traces/library-utils.d.ts +@@ -1,8 +1,5 @@ +-/// +-import { CompilerOutputBytecode } from "../../../types"; +-export declare function getLibraryAddressPositions(bytecodeOutput: CompilerOutputBytecode): number[]; +-export declare function normalizeCompilerOutputBytecode(compilerOutputBytecodeObject: string, addressesPositions: number[]): Buffer; +-export declare function linkHexStringBytecode(code: string, address: string, position: number): string; ++import { getLibraryAddressPositions, linkHexStringBytecode } from "@nomicfoundation/edr"; ++export { getLibraryAddressPositions, linkHexStringBytecode }; + export declare function zeroOutAddresses(code: Uint8Array, addressesPositions: number[]): Uint8Array; + export declare function zeroOutSlices(code: Uint8Array, slices: Array<{ + start: number; +diff --git a/internal/hardhat-network/stack-traces/library-utils.d.ts.map b/internal/hardhat-network/stack-traces/library-utils.d.ts.map +index e152c9c958bb5b68dabe49d4dcde39305e1dae14..b440fa562609d5e98936a361131f3fc5b0de2799 100644 +--- a/internal/hardhat-network/stack-traces/library-utils.d.ts.map ++++ b/internal/hardhat-network/stack-traces/library-utils.d.ts.map +@@ -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"} +\ No newline at end of file ++{"version":3,"file":"library-utils.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/library-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,CAAC;AAE7D,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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/library-utils.js b/internal/hardhat-network/stack-traces/library-utils.js +index db42dd45000c9fbe8c7210fd3c0f1605d8363ec6..9463287db24ca4c5e4eaf349cfdfe6495814f649 100644 +--- a/internal/hardhat-network/stack-traces/library-utils.js ++++ b/internal/hardhat-network/stack-traces/library-utils.js +@@ -1,36 +1,9 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-exports.normalizeLibraryRuntimeBytecodeIfNecessary = exports.zeroOutSlices = exports.zeroOutAddresses = exports.linkHexStringBytecode = exports.normalizeCompilerOutputBytecode = exports.getLibraryAddressPositions = void 0; +-const opcodes_1 = require("./opcodes"); +-function getLibraryAddressPositions(bytecodeOutput) { +- const positions = []; +- for (const libs of Object.values(bytecodeOutput.linkReferences)) { +- for (const references of Object.values(libs)) { +- for (const ref of references) { +- positions.push(ref.start); +- } +- } +- } +- return positions; +-} +-exports.getLibraryAddressPositions = getLibraryAddressPositions; +-function normalizeCompilerOutputBytecode(compilerOutputBytecodeObject, addressesPositions) { +- const ZERO_ADDRESS = "0000000000000000000000000000000000000000"; +- for (const position of addressesPositions) { +- compilerOutputBytecodeObject = linkHexStringBytecode(compilerOutputBytecodeObject, ZERO_ADDRESS, position); +- } +- return Buffer.from(compilerOutputBytecodeObject, "hex"); +-} +-exports.normalizeCompilerOutputBytecode = normalizeCompilerOutputBytecode; +-function linkHexStringBytecode(code, address, position) { +- if (address.startsWith("0x")) { +- address = address.substring(2); +- } +- return (code.substring(0, position * 2) + +- address + +- code.slice(position * 2 + address.length)); +-} +-exports.linkHexStringBytecode = linkHexStringBytecode; ++exports.normalizeLibraryRuntimeBytecodeIfNecessary = exports.zeroOutSlices = exports.zeroOutAddresses = exports.linkHexStringBytecode = exports.getLibraryAddressPositions = void 0; ++const edr_1 = require("@nomicfoundation/edr"); ++Object.defineProperty(exports, "getLibraryAddressPositions", { enumerable: true, get: function () { return edr_1.getLibraryAddressPositions; } }); ++Object.defineProperty(exports, "linkHexStringBytecode", { enumerable: true, get: function () { return edr_1.linkHexStringBytecode; } }); + function zeroOutAddresses(code, addressesPositions) { + const addressesSlices = addressesPositions.map((start) => ({ + start, +@@ -56,7 +29,7 @@ function normalizeLibraryRuntimeBytecodeIfNecessary(code) { + // This is done by modifying the code on deployment, and hard-coding the contract address. + // The first instruction is a PUSH20 of the address, which we zero-out as a way of normalizing + // it. Note that it's also zeroed-out in the compiler output. +- if (code[0] === opcodes_1.Opcode.PUSH20) { ++ if (code[0] === 115 /* Opcode.PUSH20 */) { + return zeroOutAddresses(code, [1]); + } + return code; +diff --git a/internal/hardhat-network/stack-traces/library-utils.js.map b/internal/hardhat-network/stack-traces/library-utils.js.map +index 20ac80eaddd2143758710ce259d5d7884abceaf5..5b6b56da5c8fd4da8d0f76c2dc42a0b5cfdc744c 100644 +--- a/internal/hardhat-network/stack-traces/library-utils.js.map ++++ b/internal/hardhat-network/stack-traces/library-utils.js.map +@@ -1 +1 @@ +-{"version":3,"file":"library-utils.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/library-utils.ts"],"names":[],"mappings":";;;AAEA,uCAAmC;AAEnC,SAAgB,0BAA0B,CACxC,cAAsC;IAEtC,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE;QAC/D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC5C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;gBAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3B;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAbD,gEAaC;AAED,SAAgB,+BAA+B,CAC7C,4BAAoC,EACpC,kBAA4B;IAE5B,MAAM,YAAY,GAAG,0CAA0C,CAAC;IAChE,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE;QACzC,4BAA4B,GAAG,qBAAqB,CAClD,4BAA4B,EAC5B,YAAY,EACZ,QAAQ,CACT,CAAC;KACH;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAdD,0EAcC;AAED,SAAgB,qBAAqB,CACnC,IAAY,EACZ,OAAe,EACf,QAAgB;IAEhB,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC5B,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAChC;IAED,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;QAC/B,OAAO;QACP,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAC1C,CAAC;AACJ,CAAC;AAdD,sDAcC;AAED,SAAgB,gBAAgB,CAC9B,IAAgB,EAChB,kBAA4B;IAE5B,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK;QACL,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAC;IAEJ,OAAO,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAVD,4CAUC;AAED,SAAgB,aAAa,CAC3B,IAAgB,EAChB,MAAgD;IAEhD,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE;QACtC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;SAC3B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,sCAaC;AAED,SAAgB,0CAA0C,CACxD,IAAgB;IAEhB,uCAAuC;IACvC,2FAA2F;IAC3F,0FAA0F;IAC1F,8FAA8F;IAC9F,6DAA6D;IAC7D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAM,CAAC,MAAM,EAAE;QAC7B,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,gGAaC"} +\ No newline at end of file ++{"version":3,"file":"library-utils.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/library-utils.ts"],"names":[],"mappings":";;;AAAA,8CAG8B;AAGrB,2GALP,gCAA0B,OAKO;AAAE,sGAJnC,2BAAqB,OAImC;AAE1D,SAAgB,gBAAgB,CAC9B,IAAgB,EAChB,kBAA4B;IAE5B,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK;QACL,MAAM,EAAE,EAAE;KACX,CAAC,CAAC,CAAC;IAEJ,OAAO,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAVD,4CAUC;AAED,SAAgB,aAAa,CAC3B,IAAgB,EAChB,MAAgD;IAEhD,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE;QACtC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;SAC3B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,sCAaC;AAED,SAAgB,0CAA0C,CACxD,IAAgB;IAEhB,uCAAuC;IACvC,2FAA2F;IAC3F,0FAA0F;IAC1F,8FAA8F;IAC9F,6DAA6D;IAC7D,IAAI,IAAI,CAAC,CAAC,CAAC,4BAAkB,EAAE;QAC7B,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,gGAaC"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js b/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +index 8783fd3bc38c59336b3e40ec8df9ea2bd31a53dd..0cfa46d222ce243f2ea9cea24d9b88a3f8e95ec2 100644 +--- a/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js ++++ b/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js +@@ -25,7 +25,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); + exports.adjustStackTrace = exports.stackTraceMayRequireAdjustments = void 0; + const semver_1 = __importDefault(require("semver")); + const message_trace_1 = require("./message-trace"); +-const opcodes_1 = require("./opcodes"); + const solidity_stack_trace_1 = require("./solidity-stack-trace"); + const FIRST_SOLC_VERSION_WITH_MAPPED_SMALL_INTERNAL_FUNCTIONS = "0.6.9"; + function stackTraceMayRequireAdjustments(stackTrace, decodedTrace) { +@@ -74,26 +73,26 @@ function adjustStackTrace(stackTrace, decodedTrace) { + exports.adjustStackTrace = adjustStackTrace; + function isNonContractAccountCalledError(decodedTrace) { + return matchOpcodes(decodedTrace, -9, [ +- opcodes_1.Opcode.EXTCODESIZE, +- opcodes_1.Opcode.ISZERO, +- opcodes_1.Opcode.DUP1, +- opcodes_1.Opcode.ISZERO, ++ 59 /* Opcode.EXTCODESIZE */, ++ 21 /* Opcode.ISZERO */, ++ 128 /* Opcode.DUP1 */, ++ 21 /* Opcode.ISZERO */, + ]); + } + function isConstructorInvalidParamsError(decodedTrace) { + if (!(0, message_trace_1.isDecodedCreateTrace)(decodedTrace)) { + return false; + } +- return (matchOpcodes(decodedTrace, -20, [opcodes_1.Opcode.CODESIZE]) && +- matchOpcodes(decodedTrace, -15, [opcodes_1.Opcode.CODECOPY]) && +- matchOpcodes(decodedTrace, -7, [opcodes_1.Opcode.LT, opcodes_1.Opcode.ISZERO])); ++ return (matchOpcodes(decodedTrace, -20, [56 /* Opcode.CODESIZE */]) && ++ matchOpcodes(decodedTrace, -15, [57 /* Opcode.CODECOPY */]) && ++ matchOpcodes(decodedTrace, -7, [16 /* Opcode.LT */, 21 /* Opcode.ISZERO */])); + } + function isCallInvalidParamsError(decodedTrace) { + if (!(0, message_trace_1.isDecodedCallTrace)(decodedTrace)) { + return false; + } +- return (matchOpcodes(decodedTrace, -11, [opcodes_1.Opcode.CALLDATASIZE]) && +- matchOpcodes(decodedTrace, -7, [opcodes_1.Opcode.LT, opcodes_1.Opcode.ISZERO])); ++ return (matchOpcodes(decodedTrace, -11, [54 /* Opcode.CALLDATASIZE */]) && ++ matchOpcodes(decodedTrace, -7, [16 /* Opcode.LT */, 21 /* Opcode.ISZERO */])); + } + function matchOpcode(decodedTrace, stepIndex, opcode) { + const [step] = decodedTrace.steps.slice(stepIndex, stepIndex + 1); +diff --git a/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map b/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +index 832dcd0591d709d8a1ce313748cab6fcf1078b47..f4856550ada0c58f6ed8c92b891e1c5adeb32624 100644 +--- a/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map ++++ b/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.js.map +@@ -1 +1 @@ +-{"version":3,"file":"mapped-inlined-internal-functions-heuristics.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;AAEH,oDAA4B;AAE5B,mDAKyB;AACzB,uCAAmC;AACnC,iEAGgC;AAEhC,MAAM,uDAAuD,GAAG,OAAO,CAAC;AAExE,SAAgB,+BAA+B,CAC7C,UAA8B,EAC9B,YAAoC;IAEpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEpD,OAAO,CACL,SAAS,CAAC,IAAI,KAAK,0CAAmB,CAAC,YAAY;QACnD,CAAC,SAAS,CAAC,oBAAoB;QAC/B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE;QAC3B,gBAAM,CAAC,GAAG,CACR,YAAY,CAAC,QAAQ,CAAC,eAAe,EACrC,uDAAuD,CACxD,CACF,CAAC;AACJ,CAAC;AAnBD,0EAmBC;AAED,SAAgB,gBAAgB,CAC9B,UAA8B,EAC9B,YAAoC;IAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,IAAI,+BAA+B,CAAC,YAAY,CAAC,EAAE;QACjD,OAAO;YACL,GAAG,KAAK;YACR;gBACE,IAAI,EAAE,0CAAmB,CAAC,gCAAgC;gBAC1D,eAAe,EAAE,MAAM,CAAC,eAAgB;aACzC;SACF,CAAC;KACH;IAED,IAAI,+BAA+B,CAAC,YAAY,CAAC,EAAE;QACjD,OAAO;YACL,GAAG,KAAK;YACR;gBACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;gBAC9C,eAAe,EAAE,MAAM,CAAC,eAAgB;aACzC;SACF,CAAC;KACH;IAED,IAAI,wBAAwB,CAAC,YAAY,CAAC,EAAE;QAC1C,OAAO;YACL,GAAG,KAAK;YACR;gBACE,IAAI,EAAE,0CAAmB,CAAC,oBAAoB;gBAC9C,eAAe,EAAE,MAAM,CAAC,eAAgB;aACzC;SACF,CAAC;KACH;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAtCD,4CAsCC;AAED,SAAS,+BAA+B,CACtC,YAAoC;IAEpC,OAAO,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;QACpC,gBAAM,CAAC,WAAW;QAClB,gBAAM,CAAC,MAAM;QACb,gBAAM,CAAC,IAAI;QACX,gBAAM,CAAC,MAAM;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CAAC,YAAoC;IAC3E,IAAI,CAAC,IAAA,oCAAoB,EAAC,YAAY,CAAC,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,YAAY,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,YAAY,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,gBAAM,CAAC,EAAE,EAAE,gBAAM,CAAC,MAAM,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoC;IACpE,IAAI,CAAC,IAAA,kCAAkB,EAAC,YAAY,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,YAAY,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAM,CAAC,YAAY,CAAC,CAAC;QACtD,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,gBAAM,CAAC,EAAE,EAAE,gBAAM,CAAC,MAAM,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,YAAoC,EACpC,SAAiB,EACjB,MAAc;IAEd,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAElE,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAA,yBAAS,EAAC,IAAI,CAAC,EAAE;QAC1C,OAAO,KAAK,CAAC;KACd;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElE,OAAO,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CACnB,YAAoC,EACpC,cAAsB,EACtB,OAAiB;IAEjB,IAAI,KAAK,GAAG,cAAc,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SACd;QAED,KAAK,IAAI,CAAC,CAAC;KACZ;IAED,OAAO,IAAI,CAAC;AACd,CAAC"} +\ No newline at end of file ++{"version":3,"file":"mapped-inlined-internal-functions-heuristics.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/mapped-inlined-internal-functions-heuristics.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/model.d.ts b/internal/hardhat-network/stack-traces/model.d.ts -index 8a895b3253f14c7fdea677415db8a3e853c11b13..31a97ce97b03f8361e6436d43fe16b6831d27491 100644 +index 8a895b3253f14c7fdea677415db8a3e853c11b13..5c2d7773c9da42ac972e9ace2e95c41662585b22 100644 --- a/internal/hardhat-network/stack-traces/model.d.ts +++ b/internal/hardhat-network/stack-traces/model.d.ts -@@ -28,10 +28,8 @@ export declare enum ContractFunctionVisibility { - export declare class SourceFile { - readonly sourceName: string; - readonly content: string; +@@ -1,140 +1,3 @@ +-/// +-import { Opcode } from "./opcodes"; +-export declare enum JumpType { +- NOT_JUMP = 0, +- INTO_FUNCTION = 1, +- OUTOF_FUNCTION = 2, +- INTERNAL_JUMP = 3 +-} +-export declare enum ContractType { +- CONTRACT = 0, +- LIBRARY = 1 +-} +-export declare enum ContractFunctionType { +- CONSTRUCTOR = 0, +- FUNCTION = 1, +- FALLBACK = 2, +- RECEIVE = 3, +- GETTER = 4, +- MODIFIER = 5, +- FREE_FUNCTION = 6 +-} +-export declare enum ContractFunctionVisibility { +- PRIVATE = 0, +- INTERNAL = 1, +- PUBLIC = 2, +- EXTERNAL = 3 +-} +-export declare class SourceFile { +- readonly sourceName: string; +- readonly content: string; - readonly contracts: Contract[]; - readonly functions: ContractFunction[]; -+ private readonly _functions; - constructor(sourceName: string, content: string); +- constructor(sourceName: string, content: string); - addContract(contract: Contract): void; - addFunction(func: ContractFunction): void; - getContainingFunction(location: SourceLocation): ContractFunction | undefined; - } -@@ -50,11 +48,11 @@ export declare class Contract { - readonly name: string; - readonly type: ContractType; - readonly location: SourceLocation; +- addFunction(func: ContractFunction): void; +- getContainingFunction(location: SourceLocation): ContractFunction | undefined; +-} +-export declare class SourceLocation { +- readonly file: SourceFile; +- readonly offset: number; +- readonly length: number; +- private _line; +- constructor(file: SourceFile, offset: number, length: number); +- getStartingLineNumber(): number; +- getContainingFunction(): ContractFunction | undefined; +- contains(other: SourceLocation): boolean; +- equals(other: SourceLocation): boolean; +-} +-export declare class Contract { +- readonly name: string; +- readonly type: ContractType; +- readonly location: SourceLocation; - readonly localFunctions: ContractFunction[]; - readonly customErrors: CustomError[]; - private _constructor; - private _fallback; - private _receive; -+ private readonly _localFunctions; - private readonly _selectorHexToFunction; - constructor(name: string, type: ContractType, location: SourceLocation); - get constructorFunction(): ContractFunction | undefined; -@@ -110,10 +108,6 @@ export declare class Instruction { - readonly pushData?: Buffer | undefined; - readonly location?: SourceLocation | undefined; - constructor(pc: number, opcode: Opcode, jumpType: JumpType, pushData?: Buffer | undefined, location?: SourceLocation | undefined); +- readonly customErrors: CustomError[]; +- private _constructor; +- private _fallback; +- private _receive; +- private readonly _selectorHexToFunction; +- constructor(name: string, type: ContractType, location: SourceLocation); +- get constructorFunction(): ContractFunction | undefined; +- get fallback(): ContractFunction | undefined; +- get receive(): ContractFunction | undefined; +- addLocalFunction(func: ContractFunction): void; +- addCustomError(customError: CustomError): void; +- addNextLinearizedBaseContract(baseContract: Contract): void; +- getFunctionFromSelector(selector: Uint8Array): ContractFunction | undefined; +- /** +- * We compute selectors manually, which is particularly hard. We do this +- * because we need to map selectors to AST nodes, and it seems easier to start +- * from the AST node. This is surprisingly super hard: things like inherited +- * enums, structs and ABIv2 complicate it. +- * +- * As we know that that can fail, we run a heuristic that tries to correct +- * incorrect selectors. What it does is checking the `evm.methodIdentifiers` +- * compiler output, and detect missing selectors. Then we take those and +- * find contract functions with the same name. If there are multiple of those +- * we can't do anything. If there is a single one, it must have an incorrect +- * selector, so we update it with the `evm.methodIdentifiers`'s value. +- */ +- correctSelector(functionName: string, selector: Buffer): boolean; +-} +-export declare class ContractFunction { +- readonly name: string; +- readonly type: ContractFunctionType; +- readonly location: SourceLocation; +- readonly contract?: Contract | undefined; +- readonly visibility?: ContractFunctionVisibility | undefined; +- readonly isPayable?: boolean | undefined; +- selector?: Uint8Array | undefined; +- readonly paramTypes?: any[] | undefined; +- constructor(name: string, type: ContractFunctionType, location: SourceLocation, contract?: Contract | undefined, visibility?: ContractFunctionVisibility | undefined, isPayable?: boolean | undefined, selector?: Uint8Array | undefined, paramTypes?: any[] | undefined); +- isValidCalldata(calldata: Uint8Array): boolean; +-} +-export declare class CustomError { +- readonly selector: Uint8Array; +- readonly name: string; +- readonly paramTypes: any[]; +- /** +- * Return a CustomError from the given ABI information: the name +- * of the error and its inputs. Returns undefined if it can't build +- * the CustomError. +- */ +- static fromABI(name: string, inputs: any[]): CustomError | undefined; +- private constructor(); +-} +-export declare class Instruction { +- readonly pc: number; +- readonly opcode: Opcode; +- readonly jumpType: JumpType; +- readonly pushData?: Buffer | undefined; +- readonly location?: SourceLocation | undefined; +- constructor(pc: number, opcode: Opcode, jumpType: JumpType, pushData?: Buffer | undefined, location?: SourceLocation | undefined); - /** - * Checks equality with another Instruction. - */ - equals(other: Instruction): boolean; - } - interface ImmutableReference { - start: number; -@@ -123,7 +117,6 @@ export declare class Bytecode { - readonly contract: Contract; - readonly isDeployment: boolean; - readonly normalizedCode: Buffer; +-} +-interface ImmutableReference { +- start: number; +- length: number; +-} +-export declare class Bytecode { +- readonly contract: Contract; +- readonly isDeployment: boolean; +- readonly normalizedCode: Buffer; - readonly instructions: Instruction[]; - readonly libraryAddressPositions: number[]; - readonly immutableReferences: ImmutableReference[]; - readonly compilerVersion: string; -@@ -131,10 +124,6 @@ export declare class Bytecode { - constructor(contract: Contract, isDeployment: boolean, normalizedCode: Buffer, instructions: Instruction[], libraryAddressPositions: number[], immutableReferences: ImmutableReference[], compilerVersion: string); - getInstruction(pc: number): Instruction; - hasInstruction(pc: number): boolean; +- readonly libraryAddressPositions: number[]; +- readonly immutableReferences: ImmutableReference[]; +- readonly compilerVersion: string; +- private readonly _pcToInstruction; +- constructor(contract: Contract, isDeployment: boolean, normalizedCode: Buffer, instructions: Instruction[], libraryAddressPositions: number[], immutableReferences: ImmutableReference[], compilerVersion: string); +- getInstruction(pc: number): Instruction; +- hasInstruction(pc: number): boolean; - /** - * Checks equality with another Bytecode. - */ - equals(other: Bytecode): boolean; - } - export {}; +-} +-export {}; ++import { ContractFunction, SourceLocation, SourceFile, ContractFunctionType, ContractFunctionVisibility, CustomError, Instruction, JumpType, jumpTypeToString, Bytecode, ContractType, Contract } from "@nomicfoundation/edr"; ++export { ContractFunction, SourceLocation, SourceFile, ContractFunctionType, ContractFunctionVisibility, CustomError, Instruction, JumpType, jumpTypeToString, Bytecode, ContractType, Contract, }; //# sourceMappingURL=model.d.ts.map \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/model.d.ts.map b/internal/hardhat-network/stack-traces/model.d.ts.map -index 37b116e3dc2f13d6146ed745ce3cfa70743b4cda..c3aa84dba77569e5aa628fffa494d510836e7f36 100644 +index 37b116e3dc2f13d6146ed745ce3cfa70743b4cda..a1b8d3c379bdaa304dafe68ba45d808f4d02fc98 100644 --- a/internal/hardhat-network/stack-traces/model.d.ts.map +++ b/internal/hardhat-network/stack-traces/model.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":"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"} \ No newline at end of file -+{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAInC,oBAAY,QAAQ;IAClB,QAAQ,IAAA;IACR,aAAa,IAAA;IACb,cAAc,IAAA;IACd,aAAa,IAAA;CACd;AAED,oBAAY,YAAY;IACtB,QAAQ,IAAA;IACR,OAAO,IAAA;CACR;AAED,oBAAY,oBAAoB;IAC9B,WAAW,IAAA;IACX,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,aAAa,IAAA;CACd;AAED,oBAAY,0BAA0B;IACpC,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,QAAQ,IAAA;CACT;AAED,qBAAa,UAAU;aAIH,UAAU,EAAE,MAAM;aAClB,OAAO,EAAE,MAAM;IAJjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;gBAGnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM;IAG1B,WAAW,CAAC,IAAI,EAAE,gBAAgB;IAQlC,qBAAqB,CAC1B,QAAQ,EAAE,cAAc,GACvB,gBAAgB,GAAG,SAAS;CAWhC;AAED,qBAAa,cAAc;aAIP,IAAI,EAAE,UAAU;aAChB,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;IALhC,OAAO,CAAC,KAAK,CAAqB;gBAGhB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAGzB,qBAAqB,IAAI,MAAM;IAc/B,qBAAqB,IAAI,gBAAgB,GAAG,SAAS;IAIrD,QAAQ,CAAC,KAAK,EAAE,cAAc;IAY9B,MAAM,CAAC,KAAK,EAAE,cAAc;CAOpC;AAED,qBAAa,QAAQ;aAWD,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,YAAY;aAClB,QAAQ,EAAE,cAAc;IAZ1C,SAAgB,YAAY,EAAE,WAAW,EAAE,CAAM;IAEjD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAC3B;gBAGM,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,cAAc;IAG1C,IAAW,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAE7D;IAED,IAAW,QAAQ,IAAI,gBAAgB,GAAG,SAAS,CAElD;IAED,IAAW,OAAO,IAAI,gBAAgB,GAAG,SAAS,CAEjD;IAEM,gBAAgB,CAAC,IAAI,EAAE,gBAAgB;IA0BvC,cAAc,CAAC,WAAW,EAAE,WAAW;IAIvC,6BAA6B,CAAC,YAAY,EAAE,QAAQ;IA8BpD,uBAAuB,CAC5B,QAAQ,EAAE,UAAU,GACnB,gBAAgB,GAAG,SAAS;IAI/B;;;;;;;;;;;;OAYG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;CAqBxE;AAED,qBAAa,gBAAgB;aAET,IAAI,EAAE,MAAM;aACZ,IAAI,EAAE,oBAAoB;aAC1B,QAAQ,EAAE,cAAc;aACxB,QAAQ,CAAC;aACT,UAAU,CAAC;aACX,SAAS,CAAC;IACnB,QAAQ,CAAC;aACA,UAAU,CAAC;gBAPX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,cAAc,EACxB,QAAQ,CAAC,sBAAU,EACnB,UAAU,CAAC,wCAA4B,EACvC,SAAS,CAAC,qBAAS,EAC5B,QAAQ,CAAC,wBAAY,EACZ,UAAU,CAAC,mBAAO;IAO7B,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO;CAQtD;AAED,qBAAa,WAAW;aAeJ,QAAQ,EAAE,UAAU;aACpB,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,GAAG,EAAE;IAhBnC;;;;OAIG;WACW,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,SAAS;IAQ3E,OAAO;CAKR;AAED,qBAAa,WAAW;aAEJ,EAAE,EAAE,MAAM;aACV,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,QAAQ;aAElB,QAAQ,CAAC;aACT,QAAQ,CAAC;gBALT,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAElB,QAAQ,CAAC,oBAAQ,EACjB,QAAQ,CAAC,4BAAgB;CAE5C;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,QAAQ;aAID,QAAQ,EAAE,QAAQ;aAClB,YAAY,EAAE,OAAO;aACrB,cAAc,EAAE,MAAM;aAEtB,uBAAuB,EAAE,MAAM,EAAE;aACjC,mBAAmB,EAAE,kBAAkB,EAAE;aACzC,eAAe,EAAE,MAAM;IATzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;gBAGtD,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,MAAM,EACtC,YAAY,EAAE,WAAW,EAAE,EACX,uBAAuB,EAAE,MAAM,EAAE,EACjC,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,eAAe,EAAE,MAAM;IAOlC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW;IAUvC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG3C"} ++{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,QAAQ,GACT,CAAC"} \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/model.js b/internal/hardhat-network/stack-traces/model.js -index 556661b96765b4832900ab4862af6b3e25506309..f3c580e0f0b363c920a836e8f5c74d5dae4788ea 100644 +index 556661b96765b4832900ab4862af6b3e25506309..35ad44eeaf600b1e9e3984406a5495a80691d1bf 100644 --- a/internal/hardhat-network/stack-traces/model.js +++ b/internal/hardhat-network/stack-traces/model.js -@@ -37,24 +37,17 @@ class SourceFile { - constructor(sourceName, content) { - this.sourceName = sourceName; - this.content = content; +@@ -1,328 +1,13 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-exports.Bytecode = exports.Instruction = exports.CustomError = exports.ContractFunction = exports.Contract = exports.SourceLocation = exports.SourceFile = exports.ContractFunctionVisibility = exports.ContractFunctionType = exports.ContractType = exports.JumpType = void 0; +-const ethereumjs_util_1 = require("@nomicfoundation/ethereumjs-util"); +-const abi_helpers_1 = require("../../util/abi-helpers"); +-/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */ +-var JumpType; +-(function (JumpType) { +- JumpType[JumpType["NOT_JUMP"] = 0] = "NOT_JUMP"; +- JumpType[JumpType["INTO_FUNCTION"] = 1] = "INTO_FUNCTION"; +- JumpType[JumpType["OUTOF_FUNCTION"] = 2] = "OUTOF_FUNCTION"; +- JumpType[JumpType["INTERNAL_JUMP"] = 3] = "INTERNAL_JUMP"; +-})(JumpType = exports.JumpType || (exports.JumpType = {})); +-var ContractType; +-(function (ContractType) { +- ContractType[ContractType["CONTRACT"] = 0] = "CONTRACT"; +- ContractType[ContractType["LIBRARY"] = 1] = "LIBRARY"; +-})(ContractType = exports.ContractType || (exports.ContractType = {})); +-var ContractFunctionType; +-(function (ContractFunctionType) { +- ContractFunctionType[ContractFunctionType["CONSTRUCTOR"] = 0] = "CONSTRUCTOR"; +- ContractFunctionType[ContractFunctionType["FUNCTION"] = 1] = "FUNCTION"; +- ContractFunctionType[ContractFunctionType["FALLBACK"] = 2] = "FALLBACK"; +- ContractFunctionType[ContractFunctionType["RECEIVE"] = 3] = "RECEIVE"; +- ContractFunctionType[ContractFunctionType["GETTER"] = 4] = "GETTER"; +- ContractFunctionType[ContractFunctionType["MODIFIER"] = 5] = "MODIFIER"; +- ContractFunctionType[ContractFunctionType["FREE_FUNCTION"] = 6] = "FREE_FUNCTION"; +-})(ContractFunctionType = exports.ContractFunctionType || (exports.ContractFunctionType = {})); +-var ContractFunctionVisibility; +-(function (ContractFunctionVisibility) { +- ContractFunctionVisibility[ContractFunctionVisibility["PRIVATE"] = 0] = "PRIVATE"; +- ContractFunctionVisibility[ContractFunctionVisibility["INTERNAL"] = 1] = "INTERNAL"; +- ContractFunctionVisibility[ContractFunctionVisibility["PUBLIC"] = 2] = "PUBLIC"; +- ContractFunctionVisibility[ContractFunctionVisibility["EXTERNAL"] = 3] = "EXTERNAL"; +-})(ContractFunctionVisibility = exports.ContractFunctionVisibility || (exports.ContractFunctionVisibility = {})); +-class SourceFile { +- constructor(sourceName, content) { +- this.sourceName = sourceName; +- this.content = content; - this.contracts = []; - this.functions = []; - } @@ -206,64 +1200,206 @@ index 556661b96765b4832900ab4862af6b3e25506309..f3c580e0f0b363c920a836e8f5c74d5d - throw new Error("Trying to add a contract from another file"); - } - this.contracts.push(contract); -+ this._functions = []; - } - addFunction(func) { - if (func.location.file !== this) { - throw new Error("Trying to add a function from another file"); - } +- } +- addFunction(func) { +- if (func.location.file !== this) { +- throw new Error("Trying to add a function from another file"); +- } - this.functions.push(func); -+ this._functions.push(func); - } - getContainingFunction(location) { - // TODO: Optimize this with a binary search or an internal tree +- } +- getContainingFunction(location) { +- // TODO: Optimize this with a binary search or an internal tree - for (const func of this.functions) { -+ for (const func of this._functions) { - if (func.location.contains(location)) { - return func; - } -@@ -104,8 +97,8 @@ class Contract { - this.name = name; - this.type = type; - this.location = location; +- if (func.location.contains(location)) { +- return func; +- } +- } +- return undefined; +- } +-} +-exports.SourceFile = SourceFile; +-class SourceLocation { +- constructor(file, offset, length) { +- this.file = file; +- this.offset = offset; +- this.length = length; +- } +- getStartingLineNumber() { +- if (this._line === undefined) { +- this._line = 1; +- for (const c of this.file.content.slice(0, this.offset)) { +- if (c === "\n") { +- this._line += 1; +- } +- } +- } +- return this._line; +- } +- getContainingFunction() { +- return this.file.getContainingFunction(this); +- } +- contains(other) { +- if (this.file !== other.file) { +- return false; +- } +- if (other.offset < this.offset) { +- return false; +- } +- return other.offset + other.length <= this.offset + this.length; +- } +- equals(other) { +- return (this.file === other.file && +- this.offset === other.offset && +- this.length === other.length); +- } +-} +-exports.SourceLocation = SourceLocation; +-class Contract { +- constructor(name, type, location) { +- this.name = name; +- this.type = type; +- this.location = location; - this.localFunctions = []; - this.customErrors = []; -+ this._localFunctions = []; - this._selectorHexToFunction = new Map(); - } - get constructorFunction() { -@@ -137,7 +130,7 @@ class Contract { - this._receive = func; - } - } +- this.customErrors = []; +- this._selectorHexToFunction = new Map(); +- } +- get constructorFunction() { +- return this._constructor; +- } +- get fallback() { +- return this._fallback; +- } +- get receive() { +- return this._receive; +- } +- addLocalFunction(func) { +- if (func.contract !== this) { +- throw new Error("Function isn't local"); +- } +- if (func.visibility === ContractFunctionVisibility.PUBLIC || +- func.visibility === ContractFunctionVisibility.EXTERNAL) { +- if (func.type === ContractFunctionType.FUNCTION || +- func.type === ContractFunctionType.GETTER) { +- this._selectorHexToFunction.set((0, ethereumjs_util_1.bytesToHex)(func.selector), func); +- } +- else if (func.type === ContractFunctionType.CONSTRUCTOR) { +- this._constructor = func; +- } +- else if (func.type === ContractFunctionType.FALLBACK) { +- this._fallback = func; +- } +- else if (func.type === ContractFunctionType.RECEIVE) { +- this._receive = func; +- } +- } - this.localFunctions.push(func); -+ this._localFunctions.push(func); - } - addCustomError(customError) { - this.customErrors.push(customError); -@@ -149,7 +142,7 @@ class Contract { - if (this._receive === undefined && baseContract._receive !== undefined) { - this._receive = baseContract._receive; - } +- } +- addCustomError(customError) { +- this.customErrors.push(customError); +- } +- addNextLinearizedBaseContract(baseContract) { +- if (this._fallback === undefined && baseContract._fallback !== undefined) { +- this._fallback = baseContract._fallback; +- } +- if (this._receive === undefined && baseContract._receive !== undefined) { +- this._receive = baseContract._receive; +- } - for (const baseContractFunction of baseContract.localFunctions) { -+ for (const baseContractFunction of baseContract._localFunctions) { - if (baseContractFunction.type !== ContractFunctionType.GETTER && - baseContractFunction.type !== ContractFunctionType.FUNCTION) { - continue; -@@ -238,50 +231,15 @@ class CustomError { - } - exports.CustomError = CustomError; - class Instruction { +- if (baseContractFunction.type !== ContractFunctionType.GETTER && +- baseContractFunction.type !== ContractFunctionType.FUNCTION) { +- continue; +- } +- if (baseContractFunction.visibility !== ContractFunctionVisibility.PUBLIC && +- baseContractFunction.visibility !== ContractFunctionVisibility.EXTERNAL) { +- continue; +- } +- const selectorHex = (0, ethereumjs_util_1.bytesToHex)(baseContractFunction.selector); +- if (!this._selectorHexToFunction.has(selectorHex)) { +- this._selectorHexToFunction.set(selectorHex, baseContractFunction); +- } +- } +- } +- getFunctionFromSelector(selector) { +- return this._selectorHexToFunction.get((0, ethereumjs_util_1.bytesToHex)(selector)); +- } +- /** +- * We compute selectors manually, which is particularly hard. We do this +- * because we need to map selectors to AST nodes, and it seems easier to start +- * from the AST node. This is surprisingly super hard: things like inherited +- * enums, structs and ABIv2 complicate it. +- * +- * As we know that that can fail, we run a heuristic that tries to correct +- * incorrect selectors. What it does is checking the `evm.methodIdentifiers` +- * compiler output, and detect missing selectors. Then we take those and +- * find contract functions with the same name. If there are multiple of those +- * we can't do anything. If there is a single one, it must have an incorrect +- * selector, so we update it with the `evm.methodIdentifiers`'s value. +- */ +- correctSelector(functionName, selector) { +- const functions = Array.from(this._selectorHexToFunction.values()).filter((cf) => cf.name === functionName); +- if (functions.length !== 1) { +- return false; +- } +- const functionToCorrect = functions[0]; +- if (functionToCorrect.selector !== undefined) { +- this._selectorHexToFunction.delete((0, ethereumjs_util_1.bytesToHex)(functionToCorrect.selector)); +- } +- functionToCorrect.selector = selector; +- this._selectorHexToFunction.set((0, ethereumjs_util_1.bytesToHex)(selector), functionToCorrect); +- return true; +- } +-} +-exports.Contract = Contract; +-class ContractFunction { +- constructor(name, type, location, contract, visibility, isPayable, selector, paramTypes) { +- this.name = name; +- this.type = type; +- this.location = location; +- this.contract = contract; +- this.visibility = visibility; +- this.isPayable = isPayable; +- this.selector = selector; +- this.paramTypes = paramTypes; +- if (contract !== undefined && !contract.location.contains(location)) { +- throw new Error("Incompatible contract and function location"); +- } +- } +- isValidCalldata(calldata) { +- if (this.paramTypes === undefined) { +- // if we don't know the param types, we just assume that the call is valid +- return true; +- } +- return abi_helpers_1.AbiHelpers.isValidCalldata(this.paramTypes, calldata); +- } +-} +-exports.ContractFunction = ContractFunction; +-class CustomError { +- /** +- * Return a CustomError from the given ABI information: the name +- * of the error and its inputs. Returns undefined if it can't build +- * the CustomError. +- */ +- static fromABI(name, inputs) { +- const selector = abi_helpers_1.AbiHelpers.computeSelector(name, inputs); +- if (selector !== undefined) { +- return new CustomError(selector, name, inputs); +- } +- } +- constructor(selector, name, paramTypes) { +- this.selector = selector; +- this.name = name; +- this.paramTypes = paramTypes; +- } +-} +-exports.CustomError = CustomError; +-class Instruction { - constructor(pc, opcode, jumpType, pushData, location) { -+ constructor(pc, opcode, jumpType, -+ // Used only for debugging -+ pushData, location) { - this.pc = pc; - this.opcode = opcode; - this.jumpType = jumpType; - this.pushData = pushData; - this.location = location; - } +- this.pc = pc; +- this.opcode = opcode; +- this.jumpType = jumpType; +- this.pushData = pushData; +- this.location = location; +- } - /** - * Checks equality with another Instruction. - */ @@ -301,21 +1437,32 @@ index 556661b96765b4832900ab4862af6b3e25506309..f3c580e0f0b363c920a836e8f5c74d5d - } - return true; - } - } - exports.Instruction = Instruction; - class Bytecode { -@@ -289,7 +247,6 @@ class Bytecode { - this.contract = contract; - this.isDeployment = isDeployment; - this.normalizedCode = normalizedCode; +-} +-exports.Instruction = Instruction; +-class Bytecode { +- constructor(contract, isDeployment, normalizedCode, instructions, libraryAddressPositions, immutableReferences, compilerVersion) { +- this.contract = contract; +- this.isDeployment = isDeployment; +- this.normalizedCode = normalizedCode; - this.instructions = instructions; - this.libraryAddressPositions = libraryAddressPositions; - this.immutableReferences = immutableReferences; - this.compilerVersion = compilerVersion; -@@ -308,21 +265,6 @@ class Bytecode { - hasInstruction(pc) { - return this._pcToInstruction.has(pc); - } +- this.libraryAddressPositions = libraryAddressPositions; +- this.immutableReferences = immutableReferences; +- this.compilerVersion = compilerVersion; +- this._pcToInstruction = new Map(); +- for (const inst of instructions) { +- this._pcToInstruction.set(inst.pc, inst); +- } +- } +- getInstruction(pc) { +- const inst = this._pcToInstruction.get(pc); +- if (inst === undefined) { +- throw new Error(`There's no instruction at pc ${pc}`); +- } +- return inst; +- } +- hasInstruction(pc) { +- return this._pcToInstruction.has(pc); +- } - /** - * Checks equality with another Bytecode. - */ @@ -331,18 +1478,732 @@ index 556661b96765b4832900ab4862af6b3e25506309..f3c580e0f0b363c920a836e8f5c74d5d - } - return true; - } - } - exports.Bytecode = Bytecode; +-} +-exports.Bytecode = Bytecode; ++exports.Contract = exports.Bytecode = exports.jumpTypeToString = exports.Instruction = exports.CustomError = exports.SourceFile = exports.SourceLocation = exports.ContractFunction = void 0; ++const edr_1 = require("@nomicfoundation/edr"); ++Object.defineProperty(exports, "ContractFunction", { enumerable: true, get: function () { return edr_1.ContractFunction; } }); ++Object.defineProperty(exports, "SourceLocation", { enumerable: true, get: function () { return edr_1.SourceLocation; } }); ++Object.defineProperty(exports, "SourceFile", { enumerable: true, get: function () { return edr_1.SourceFile; } }); ++Object.defineProperty(exports, "CustomError", { enumerable: true, get: function () { return edr_1.CustomError; } }); ++Object.defineProperty(exports, "Instruction", { enumerable: true, get: function () { return edr_1.Instruction; } }); ++Object.defineProperty(exports, "jumpTypeToString", { enumerable: true, get: function () { return edr_1.jumpTypeToString; } }); ++Object.defineProperty(exports, "Bytecode", { enumerable: true, get: function () { return edr_1.Bytecode; } }); ++Object.defineProperty(exports, "Contract", { enumerable: true, get: function () { return edr_1.Contract; } }); //# sourceMappingURL=model.js.map \ No newline at end of file diff --git a/internal/hardhat-network/stack-traces/model.js.map b/internal/hardhat-network/stack-traces/model.js.map -index aec9e57266d011c7adadcd635625b258d29e0da5..ecf4c58585255ece4a4190e9d39b722c2291e8ca 100644 +index aec9e57266d011c7adadcd635625b258d29e0da5..b47eda32725b35c38662665b0b5cc205c0ddb243 100644 --- a/internal/hardhat-network/stack-traces/model.js.map +++ b/internal/hardhat-network/stack-traces/model.js.map @@ -1 +1 @@ -{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":"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"} \ No newline at end of file -+{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":"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"} ++{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/model.ts"],"names":[],"mappings":";;;AAAA,8CAa8B;AAG5B,iGAfA,sBAAgB,OAeA;AAChB,+FAfA,oBAAc,OAeA;AACd,2FAfA,gBAAU,OAeA;AAGV,4FAfA,iBAAW,OAeA;AACX,4FAfA,iBAAW,OAeA;AAEX,iGAfA,sBAAgB,OAeA;AAChB,yFAfA,cAAQ,OAeA;AAER,yFAfA,cAAQ,OAeA"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/opcodes.d.ts b/internal/hardhat-network/stack-traces/opcodes.d.ts +index c976b094bdd241f713bb794c3feda83451189ee9..d2b13eb1b99a3f4bfe1f61f73323ef7e7dd9dcae 100644 +--- a/internal/hardhat-network/stack-traces/opcodes.d.ts ++++ b/internal/hardhat-network/stack-traces/opcodes.d.ts +@@ -1,266 +1,2 @@ +-export declare enum Opcode { +- STOP = 0, +- ADD = 1, +- MUL = 2, +- SUB = 3, +- DIV = 4, +- SDIV = 5, +- MOD = 6, +- SMOD = 7, +- ADDMOD = 8, +- MULMOD = 9, +- EXP = 10, +- SIGNEXTEND = 11, +- UNRECOGNIZED_0C = 12, +- UNRECOGNIZED_0D = 13, +- UNRECOGNIZED_0E = 14, +- UNRECOGNIZED_0F = 15, +- LT = 16, +- GT = 17, +- SLT = 18, +- SGT = 19, +- EQ = 20, +- ISZERO = 21, +- AND = 22, +- OR = 23, +- XOR = 24, +- NOT = 25, +- BYTE = 26, +- SHL = 27, +- SHR = 28, +- SAR = 29, +- UNRECOGNIZED_1E = 30, +- UNRECOGNIZED_1F = 31, +- SHA3 = 32, +- UNRECOGNIZED_21 = 33, +- UNRECOGNIZED_22 = 34, +- UNRECOGNIZED_23 = 35, +- UNRECOGNIZED_24 = 36, +- UNRECOGNIZED_25 = 37, +- UNRECOGNIZED_26 = 38, +- UNRECOGNIZED_27 = 39, +- UNRECOGNIZED_28 = 40, +- UNRECOGNIZED_29 = 41, +- UNRECOGNIZED_2A = 42, +- UNRECOGNIZED_2B = 43, +- UNRECOGNIZED_2C = 44, +- UNRECOGNIZED_2D = 45, +- UNRECOGNIZED_2E = 46, +- UNRECOGNIZED_2F = 47, +- ADDRESS = 48, +- BALANCE = 49, +- ORIGIN = 50, +- CALLER = 51, +- CALLVALUE = 52, +- CALLDATALOAD = 53, +- CALLDATASIZE = 54, +- CALLDATACOPY = 55, +- CODESIZE = 56, +- CODECOPY = 57, +- GASPRICE = 58, +- EXTCODESIZE = 59, +- EXTCODECOPY = 60, +- RETURNDATASIZE = 61, +- RETURNDATACOPY = 62, +- EXTCODEHASH = 63, +- BLOCKHASH = 64, +- COINBASE = 65, +- TIMESTAMP = 66, +- NUMBER = 67, +- DIFFICULTY = 68, +- GASLIMIT = 69, +- CHAINID = 70, +- SELFBALANCE = 71, +- BASEFEE = 72, +- UNRECOGNIZED_49 = 73, +- UNRECOGNIZED_4A = 74, +- UNRECOGNIZED_4B = 75, +- UNRECOGNIZED_4C = 76, +- UNRECOGNIZED_4D = 77, +- UNRECOGNIZED_4E = 78, +- UNRECOGNIZED_4F = 79, +- POP = 80, +- MLOAD = 81, +- MSTORE = 82, +- MSTORE8 = 83, +- SLOAD = 84, +- SSTORE = 85, +- JUMP = 86, +- JUMPI = 87, +- PC = 88, +- MSIZE = 89, +- GAS = 90, +- JUMPDEST = 91, +- UNRECOGNIZED_5C = 92, +- UNRECOGNIZED_5D = 93, +- UNRECOGNIZED_5E = 94, +- UNRECOGNIZED_5F = 95, +- PUSH1 = 96, +- PUSH2 = 97, +- PUSH3 = 98, +- PUSH4 = 99, +- PUSH5 = 100, +- PUSH6 = 101, +- PUSH7 = 102, +- PUSH8 = 103, +- PUSH9 = 104, +- PUSH10 = 105, +- PUSH11 = 106, +- PUSH12 = 107, +- PUSH13 = 108, +- PUSH14 = 109, +- PUSH15 = 110, +- PUSH16 = 111, +- PUSH17 = 112, +- PUSH18 = 113, +- PUSH19 = 114, +- PUSH20 = 115, +- PUSH21 = 116, +- PUSH22 = 117, +- PUSH23 = 118, +- PUSH24 = 119, +- PUSH25 = 120, +- PUSH26 = 121, +- PUSH27 = 122, +- PUSH28 = 123, +- PUSH29 = 124, +- PUSH30 = 125, +- PUSH31 = 126, +- PUSH32 = 127, +- DUP1 = 128, +- DUP2 = 129, +- DUP3 = 130, +- DUP4 = 131, +- DUP5 = 132, +- DUP6 = 133, +- DUP7 = 134, +- DUP8 = 135, +- DUP9 = 136, +- DUP10 = 137, +- DUP11 = 138, +- DUP12 = 139, +- DUP13 = 140, +- DUP14 = 141, +- DUP15 = 142, +- DUP16 = 143, +- SWAP1 = 144, +- SWAP2 = 145, +- SWAP3 = 146, +- SWAP4 = 147, +- SWAP5 = 148, +- SWAP6 = 149, +- SWAP7 = 150, +- SWAP8 = 151, +- SWAP9 = 152, +- SWAP10 = 153, +- SWAP11 = 154, +- SWAP12 = 155, +- SWAP13 = 156, +- SWAP14 = 157, +- SWAP15 = 158, +- SWAP16 = 159, +- LOG0 = 160, +- LOG1 = 161, +- LOG2 = 162, +- LOG3 = 163, +- LOG4 = 164, +- UNRECOGNIZED_A5 = 165, +- UNRECOGNIZED_A6 = 166, +- UNRECOGNIZED_A7 = 167, +- UNRECOGNIZED_A8 = 168, +- UNRECOGNIZED_A9 = 169, +- UNRECOGNIZED_AA = 170, +- UNRECOGNIZED_AB = 171, +- UNRECOGNIZED_AC = 172, +- UNRECOGNIZED_AD = 173, +- UNRECOGNIZED_AE = 174, +- UNRECOGNIZED_AF = 175, +- UNRECOGNIZED_B0 = 176, +- UNRECOGNIZED_B1 = 177, +- UNRECOGNIZED_B2 = 178, +- UNRECOGNIZED_B3 = 179, +- UNRECOGNIZED_B4 = 180, +- UNRECOGNIZED_B5 = 181, +- UNRECOGNIZED_B6 = 182, +- UNRECOGNIZED_B7 = 183, +- UNRECOGNIZED_B8 = 184, +- UNRECOGNIZED_B9 = 185, +- UNRECOGNIZED_BA = 186, +- UNRECOGNIZED_BB = 187, +- UNRECOGNIZED_BC = 188, +- UNRECOGNIZED_BD = 189, +- UNRECOGNIZED_BE = 190, +- UNRECOGNIZED_BF = 191, +- UNRECOGNIZED_C0 = 192, +- UNRECOGNIZED_C1 = 193, +- UNRECOGNIZED_C2 = 194, +- UNRECOGNIZED_C3 = 195, +- UNRECOGNIZED_C4 = 196, +- UNRECOGNIZED_C5 = 197, +- UNRECOGNIZED_C6 = 198, +- UNRECOGNIZED_C7 = 199, +- UNRECOGNIZED_C8 = 200, +- UNRECOGNIZED_C9 = 201, +- UNRECOGNIZED_CA = 202, +- UNRECOGNIZED_CB = 203, +- UNRECOGNIZED_CC = 204, +- UNRECOGNIZED_CD = 205, +- UNRECOGNIZED_CE = 206, +- UNRECOGNIZED_CF = 207, +- UNRECOGNIZED_D0 = 208, +- UNRECOGNIZED_D1 = 209, +- UNRECOGNIZED_D2 = 210, +- UNRECOGNIZED_D3 = 211, +- UNRECOGNIZED_D4 = 212, +- UNRECOGNIZED_D5 = 213, +- UNRECOGNIZED_D6 = 214, +- UNRECOGNIZED_D7 = 215, +- UNRECOGNIZED_D8 = 216, +- UNRECOGNIZED_D9 = 217, +- UNRECOGNIZED_DA = 218, +- UNRECOGNIZED_DB = 219, +- UNRECOGNIZED_DC = 220, +- UNRECOGNIZED_DD = 221, +- UNRECOGNIZED_DE = 222, +- UNRECOGNIZED_DF = 223, +- UNRECOGNIZED_E0 = 224, +- UNRECOGNIZED_E1 = 225, +- UNRECOGNIZED_E2 = 226, +- UNRECOGNIZED_E3 = 227, +- UNRECOGNIZED_E4 = 228, +- UNRECOGNIZED_E5 = 229, +- UNRECOGNIZED_E6 = 230, +- UNRECOGNIZED_E7 = 231, +- UNRECOGNIZED_E8 = 232, +- UNRECOGNIZED_E9 = 233, +- UNRECOGNIZED_EA = 234, +- UNRECOGNIZED_EB = 235, +- UNRECOGNIZED_EC = 236, +- UNRECOGNIZED_ED = 237, +- UNRECOGNIZED_EE = 238, +- UNRECOGNIZED_EF = 239, +- CREATE = 240, +- CALL = 241, +- CALLCODE = 242, +- RETURN = 243, +- DELEGATECALL = 244, +- CREATE2 = 245, +- UNRECOGNIZED_F6 = 246, +- UNRECOGNIZED_F7 = 247, +- UNRECOGNIZED_F8 = 248, +- UNRECOGNIZED_F9 = 249, +- STATICCALL = 250, +- UNRECOGNIZED_FB = 251, +- UNRECOGNIZED_FC = 252, +- REVERT = 253, +- INVALID = 254, +- SELFDESTRUCT = 255 +-} +-export declare function opcodeName(opcode: number): string; +-export declare function isPush(opcode: Opcode): boolean; +-export declare function isJump(opcode: Opcode): boolean; +-export declare function getPushLength(opcode: Opcode): number; +-export declare function getOpcodeLength(opcode: Opcode): number; +-export declare function isCall(opcode: Opcode): boolean; +-export declare function isCreate(opcode: Opcode): boolean; ++export { Opcode, isPush, isJump, getPushLength, getOpcodeLength, isCall, isCreate, opcodeToString, } from "@nomicfoundation/edr"; + //# sourceMappingURL=opcodes.d.ts.map +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/opcodes.d.ts.map b/internal/hardhat-network/stack-traces/opcodes.d.ts.map +index 33143d06969570a0f445630c2ef43ad0bd72e4ec..d8f7ea70232fd8dbe0b27bcacda9073fc95e5280 100644 +--- a/internal/hardhat-network/stack-traces/opcodes.d.ts.map ++++ b/internal/hardhat-network/stack-traces/opcodes.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"opcodes.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/opcodes.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"opcodes.d.ts","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/opcodes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,aAAa,EACb,eAAe,EACf,MAAM,EACN,QAAQ,EACR,cAAc,GACf,MAAM,sBAAsB,CAAC"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/opcodes.js b/internal/hardhat-network/stack-traces/opcodes.js +index 79a21c15b4540522c70969d961b53afe420a13de..ea3936d11ebfb882f20dd196f81a511caf5b7028 100644 +--- a/internal/hardhat-network/stack-traces/opcodes.js ++++ b/internal/hardhat-network/stack-traces/opcodes.js +@@ -1,320 +1,12 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); +-exports.isCreate = exports.isCall = exports.getOpcodeLength = exports.getPushLength = exports.isJump = exports.isPush = exports.opcodeName = exports.Opcode = void 0; +-var Opcode; +-(function (Opcode) { +- // Arithmetic operations +- Opcode[Opcode["STOP"] = 0] = "STOP"; +- Opcode[Opcode["ADD"] = 1] = "ADD"; +- Opcode[Opcode["MUL"] = 2] = "MUL"; +- Opcode[Opcode["SUB"] = 3] = "SUB"; +- Opcode[Opcode["DIV"] = 4] = "DIV"; +- Opcode[Opcode["SDIV"] = 5] = "SDIV"; +- Opcode[Opcode["MOD"] = 6] = "MOD"; +- Opcode[Opcode["SMOD"] = 7] = "SMOD"; +- Opcode[Opcode["ADDMOD"] = 8] = "ADDMOD"; +- Opcode[Opcode["MULMOD"] = 9] = "MULMOD"; +- Opcode[Opcode["EXP"] = 10] = "EXP"; +- Opcode[Opcode["SIGNEXTEND"] = 11] = "SIGNEXTEND"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_0C"] = 12] = "UNRECOGNIZED_0C"; +- Opcode[Opcode["UNRECOGNIZED_0D"] = 13] = "UNRECOGNIZED_0D"; +- Opcode[Opcode["UNRECOGNIZED_0E"] = 14] = "UNRECOGNIZED_0E"; +- Opcode[Opcode["UNRECOGNIZED_0F"] = 15] = "UNRECOGNIZED_0F"; +- // Comparison and bitwise operations +- Opcode[Opcode["LT"] = 16] = "LT"; +- Opcode[Opcode["GT"] = 17] = "GT"; +- Opcode[Opcode["SLT"] = 18] = "SLT"; +- Opcode[Opcode["SGT"] = 19] = "SGT"; +- Opcode[Opcode["EQ"] = 20] = "EQ"; +- Opcode[Opcode["ISZERO"] = 21] = "ISZERO"; +- Opcode[Opcode["AND"] = 22] = "AND"; +- Opcode[Opcode["OR"] = 23] = "OR"; +- Opcode[Opcode["XOR"] = 24] = "XOR"; +- Opcode[Opcode["NOT"] = 25] = "NOT"; +- Opcode[Opcode["BYTE"] = 26] = "BYTE"; +- Opcode[Opcode["SHL"] = 27] = "SHL"; +- Opcode[Opcode["SHR"] = 28] = "SHR"; +- Opcode[Opcode["SAR"] = 29] = "SAR"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_1E"] = 30] = "UNRECOGNIZED_1E"; +- Opcode[Opcode["UNRECOGNIZED_1F"] = 31] = "UNRECOGNIZED_1F"; +- // Cryptographic operations +- Opcode[Opcode["SHA3"] = 32] = "SHA3"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_21"] = 33] = "UNRECOGNIZED_21"; +- Opcode[Opcode["UNRECOGNIZED_22"] = 34] = "UNRECOGNIZED_22"; +- Opcode[Opcode["UNRECOGNIZED_23"] = 35] = "UNRECOGNIZED_23"; +- Opcode[Opcode["UNRECOGNIZED_24"] = 36] = "UNRECOGNIZED_24"; +- Opcode[Opcode["UNRECOGNIZED_25"] = 37] = "UNRECOGNIZED_25"; +- Opcode[Opcode["UNRECOGNIZED_26"] = 38] = "UNRECOGNIZED_26"; +- Opcode[Opcode["UNRECOGNIZED_27"] = 39] = "UNRECOGNIZED_27"; +- Opcode[Opcode["UNRECOGNIZED_28"] = 40] = "UNRECOGNIZED_28"; +- Opcode[Opcode["UNRECOGNIZED_29"] = 41] = "UNRECOGNIZED_29"; +- Opcode[Opcode["UNRECOGNIZED_2A"] = 42] = "UNRECOGNIZED_2A"; +- Opcode[Opcode["UNRECOGNIZED_2B"] = 43] = "UNRECOGNIZED_2B"; +- Opcode[Opcode["UNRECOGNIZED_2C"] = 44] = "UNRECOGNIZED_2C"; +- Opcode[Opcode["UNRECOGNIZED_2D"] = 45] = "UNRECOGNIZED_2D"; +- Opcode[Opcode["UNRECOGNIZED_2E"] = 46] = "UNRECOGNIZED_2E"; +- Opcode[Opcode["UNRECOGNIZED_2F"] = 47] = "UNRECOGNIZED_2F"; +- // Message info operations +- Opcode[Opcode["ADDRESS"] = 48] = "ADDRESS"; +- Opcode[Opcode["BALANCE"] = 49] = "BALANCE"; +- Opcode[Opcode["ORIGIN"] = 50] = "ORIGIN"; +- Opcode[Opcode["CALLER"] = 51] = "CALLER"; +- Opcode[Opcode["CALLVALUE"] = 52] = "CALLVALUE"; +- Opcode[Opcode["CALLDATALOAD"] = 53] = "CALLDATALOAD"; +- Opcode[Opcode["CALLDATASIZE"] = 54] = "CALLDATASIZE"; +- Opcode[Opcode["CALLDATACOPY"] = 55] = "CALLDATACOPY"; +- Opcode[Opcode["CODESIZE"] = 56] = "CODESIZE"; +- Opcode[Opcode["CODECOPY"] = 57] = "CODECOPY"; +- Opcode[Opcode["GASPRICE"] = 58] = "GASPRICE"; +- Opcode[Opcode["EXTCODESIZE"] = 59] = "EXTCODESIZE"; +- Opcode[Opcode["EXTCODECOPY"] = 60] = "EXTCODECOPY"; +- Opcode[Opcode["RETURNDATASIZE"] = 61] = "RETURNDATASIZE"; +- Opcode[Opcode["RETURNDATACOPY"] = 62] = "RETURNDATACOPY"; +- Opcode[Opcode["EXTCODEHASH"] = 63] = "EXTCODEHASH"; +- // Block info operations +- Opcode[Opcode["BLOCKHASH"] = 64] = "BLOCKHASH"; +- Opcode[Opcode["COINBASE"] = 65] = "COINBASE"; +- Opcode[Opcode["TIMESTAMP"] = 66] = "TIMESTAMP"; +- Opcode[Opcode["NUMBER"] = 67] = "NUMBER"; +- Opcode[Opcode["DIFFICULTY"] = 68] = "DIFFICULTY"; +- Opcode[Opcode["GASLIMIT"] = 69] = "GASLIMIT"; +- // Istanbul opcodes +- Opcode[Opcode["CHAINID"] = 70] = "CHAINID"; +- Opcode[Opcode["SELFBALANCE"] = 71] = "SELFBALANCE"; +- // London opcodes +- Opcode[Opcode["BASEFEE"] = 72] = "BASEFEE"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_49"] = 73] = "UNRECOGNIZED_49"; +- Opcode[Opcode["UNRECOGNIZED_4A"] = 74] = "UNRECOGNIZED_4A"; +- Opcode[Opcode["UNRECOGNIZED_4B"] = 75] = "UNRECOGNIZED_4B"; +- Opcode[Opcode["UNRECOGNIZED_4C"] = 76] = "UNRECOGNIZED_4C"; +- Opcode[Opcode["UNRECOGNIZED_4D"] = 77] = "UNRECOGNIZED_4D"; +- Opcode[Opcode["UNRECOGNIZED_4E"] = 78] = "UNRECOGNIZED_4E"; +- Opcode[Opcode["UNRECOGNIZED_4F"] = 79] = "UNRECOGNIZED_4F"; +- // Storage, memory, and other operations +- Opcode[Opcode["POP"] = 80] = "POP"; +- Opcode[Opcode["MLOAD"] = 81] = "MLOAD"; +- Opcode[Opcode["MSTORE"] = 82] = "MSTORE"; +- Opcode[Opcode["MSTORE8"] = 83] = "MSTORE8"; +- Opcode[Opcode["SLOAD"] = 84] = "SLOAD"; +- Opcode[Opcode["SSTORE"] = 85] = "SSTORE"; +- Opcode[Opcode["JUMP"] = 86] = "JUMP"; +- Opcode[Opcode["JUMPI"] = 87] = "JUMPI"; +- Opcode[Opcode["PC"] = 88] = "PC"; +- Opcode[Opcode["MSIZE"] = 89] = "MSIZE"; +- Opcode[Opcode["GAS"] = 90] = "GAS"; +- Opcode[Opcode["JUMPDEST"] = 91] = "JUMPDEST"; +- // Uncallocated +- Opcode[Opcode["UNRECOGNIZED_5C"] = 92] = "UNRECOGNIZED_5C"; +- Opcode[Opcode["UNRECOGNIZED_5D"] = 93] = "UNRECOGNIZED_5D"; +- Opcode[Opcode["UNRECOGNIZED_5E"] = 94] = "UNRECOGNIZED_5E"; +- Opcode[Opcode["UNRECOGNIZED_5F"] = 95] = "UNRECOGNIZED_5F"; +- // Push operations +- Opcode[Opcode["PUSH1"] = 96] = "PUSH1"; +- Opcode[Opcode["PUSH2"] = 97] = "PUSH2"; +- Opcode[Opcode["PUSH3"] = 98] = "PUSH3"; +- Opcode[Opcode["PUSH4"] = 99] = "PUSH4"; +- Opcode[Opcode["PUSH5"] = 100] = "PUSH5"; +- Opcode[Opcode["PUSH6"] = 101] = "PUSH6"; +- Opcode[Opcode["PUSH7"] = 102] = "PUSH7"; +- Opcode[Opcode["PUSH8"] = 103] = "PUSH8"; +- Opcode[Opcode["PUSH9"] = 104] = "PUSH9"; +- Opcode[Opcode["PUSH10"] = 105] = "PUSH10"; +- Opcode[Opcode["PUSH11"] = 106] = "PUSH11"; +- Opcode[Opcode["PUSH12"] = 107] = "PUSH12"; +- Opcode[Opcode["PUSH13"] = 108] = "PUSH13"; +- Opcode[Opcode["PUSH14"] = 109] = "PUSH14"; +- Opcode[Opcode["PUSH15"] = 110] = "PUSH15"; +- Opcode[Opcode["PUSH16"] = 111] = "PUSH16"; +- Opcode[Opcode["PUSH17"] = 112] = "PUSH17"; +- Opcode[Opcode["PUSH18"] = 113] = "PUSH18"; +- Opcode[Opcode["PUSH19"] = 114] = "PUSH19"; +- Opcode[Opcode["PUSH20"] = 115] = "PUSH20"; +- Opcode[Opcode["PUSH21"] = 116] = "PUSH21"; +- Opcode[Opcode["PUSH22"] = 117] = "PUSH22"; +- Opcode[Opcode["PUSH23"] = 118] = "PUSH23"; +- Opcode[Opcode["PUSH24"] = 119] = "PUSH24"; +- Opcode[Opcode["PUSH25"] = 120] = "PUSH25"; +- Opcode[Opcode["PUSH26"] = 121] = "PUSH26"; +- Opcode[Opcode["PUSH27"] = 122] = "PUSH27"; +- Opcode[Opcode["PUSH28"] = 123] = "PUSH28"; +- Opcode[Opcode["PUSH29"] = 124] = "PUSH29"; +- Opcode[Opcode["PUSH30"] = 125] = "PUSH30"; +- Opcode[Opcode["PUSH31"] = 126] = "PUSH31"; +- Opcode[Opcode["PUSH32"] = 127] = "PUSH32"; +- // Dup operations +- Opcode[Opcode["DUP1"] = 128] = "DUP1"; +- Opcode[Opcode["DUP2"] = 129] = "DUP2"; +- Opcode[Opcode["DUP3"] = 130] = "DUP3"; +- Opcode[Opcode["DUP4"] = 131] = "DUP4"; +- Opcode[Opcode["DUP5"] = 132] = "DUP5"; +- Opcode[Opcode["DUP6"] = 133] = "DUP6"; +- Opcode[Opcode["DUP7"] = 134] = "DUP7"; +- Opcode[Opcode["DUP8"] = 135] = "DUP8"; +- Opcode[Opcode["DUP9"] = 136] = "DUP9"; +- Opcode[Opcode["DUP10"] = 137] = "DUP10"; +- Opcode[Opcode["DUP11"] = 138] = "DUP11"; +- Opcode[Opcode["DUP12"] = 139] = "DUP12"; +- Opcode[Opcode["DUP13"] = 140] = "DUP13"; +- Opcode[Opcode["DUP14"] = 141] = "DUP14"; +- Opcode[Opcode["DUP15"] = 142] = "DUP15"; +- Opcode[Opcode["DUP16"] = 143] = "DUP16"; +- // Swap operations +- Opcode[Opcode["SWAP1"] = 144] = "SWAP1"; +- Opcode[Opcode["SWAP2"] = 145] = "SWAP2"; +- Opcode[Opcode["SWAP3"] = 146] = "SWAP3"; +- Opcode[Opcode["SWAP4"] = 147] = "SWAP4"; +- Opcode[Opcode["SWAP5"] = 148] = "SWAP5"; +- Opcode[Opcode["SWAP6"] = 149] = "SWAP6"; +- Opcode[Opcode["SWAP7"] = 150] = "SWAP7"; +- Opcode[Opcode["SWAP8"] = 151] = "SWAP8"; +- Opcode[Opcode["SWAP9"] = 152] = "SWAP9"; +- Opcode[Opcode["SWAP10"] = 153] = "SWAP10"; +- Opcode[Opcode["SWAP11"] = 154] = "SWAP11"; +- Opcode[Opcode["SWAP12"] = 155] = "SWAP12"; +- Opcode[Opcode["SWAP13"] = 156] = "SWAP13"; +- Opcode[Opcode["SWAP14"] = 157] = "SWAP14"; +- Opcode[Opcode["SWAP15"] = 158] = "SWAP15"; +- Opcode[Opcode["SWAP16"] = 159] = "SWAP16"; +- // Log operations +- Opcode[Opcode["LOG0"] = 160] = "LOG0"; +- Opcode[Opcode["LOG1"] = 161] = "LOG1"; +- Opcode[Opcode["LOG2"] = 162] = "LOG2"; +- Opcode[Opcode["LOG3"] = 163] = "LOG3"; +- Opcode[Opcode["LOG4"] = 164] = "LOG4"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_A5"] = 165] = "UNRECOGNIZED_A5"; +- Opcode[Opcode["UNRECOGNIZED_A6"] = 166] = "UNRECOGNIZED_A6"; +- Opcode[Opcode["UNRECOGNIZED_A7"] = 167] = "UNRECOGNIZED_A7"; +- Opcode[Opcode["UNRECOGNIZED_A8"] = 168] = "UNRECOGNIZED_A8"; +- Opcode[Opcode["UNRECOGNIZED_A9"] = 169] = "UNRECOGNIZED_A9"; +- Opcode[Opcode["UNRECOGNIZED_AA"] = 170] = "UNRECOGNIZED_AA"; +- Opcode[Opcode["UNRECOGNIZED_AB"] = 171] = "UNRECOGNIZED_AB"; +- Opcode[Opcode["UNRECOGNIZED_AC"] = 172] = "UNRECOGNIZED_AC"; +- Opcode[Opcode["UNRECOGNIZED_AD"] = 173] = "UNRECOGNIZED_AD"; +- Opcode[Opcode["UNRECOGNIZED_AE"] = 174] = "UNRECOGNIZED_AE"; +- Opcode[Opcode["UNRECOGNIZED_AF"] = 175] = "UNRECOGNIZED_AF"; +- Opcode[Opcode["UNRECOGNIZED_B0"] = 176] = "UNRECOGNIZED_B0"; +- Opcode[Opcode["UNRECOGNIZED_B1"] = 177] = "UNRECOGNIZED_B1"; +- Opcode[Opcode["UNRECOGNIZED_B2"] = 178] = "UNRECOGNIZED_B2"; +- Opcode[Opcode["UNRECOGNIZED_B3"] = 179] = "UNRECOGNIZED_B3"; +- Opcode[Opcode["UNRECOGNIZED_B4"] = 180] = "UNRECOGNIZED_B4"; +- Opcode[Opcode["UNRECOGNIZED_B5"] = 181] = "UNRECOGNIZED_B5"; +- Opcode[Opcode["UNRECOGNIZED_B6"] = 182] = "UNRECOGNIZED_B6"; +- Opcode[Opcode["UNRECOGNIZED_B7"] = 183] = "UNRECOGNIZED_B7"; +- Opcode[Opcode["UNRECOGNIZED_B8"] = 184] = "UNRECOGNIZED_B8"; +- Opcode[Opcode["UNRECOGNIZED_B9"] = 185] = "UNRECOGNIZED_B9"; +- Opcode[Opcode["UNRECOGNIZED_BA"] = 186] = "UNRECOGNIZED_BA"; +- Opcode[Opcode["UNRECOGNIZED_BB"] = 187] = "UNRECOGNIZED_BB"; +- Opcode[Opcode["UNRECOGNIZED_BC"] = 188] = "UNRECOGNIZED_BC"; +- Opcode[Opcode["UNRECOGNIZED_BD"] = 189] = "UNRECOGNIZED_BD"; +- Opcode[Opcode["UNRECOGNIZED_BE"] = 190] = "UNRECOGNIZED_BE"; +- Opcode[Opcode["UNRECOGNIZED_BF"] = 191] = "UNRECOGNIZED_BF"; +- Opcode[Opcode["UNRECOGNIZED_C0"] = 192] = "UNRECOGNIZED_C0"; +- Opcode[Opcode["UNRECOGNIZED_C1"] = 193] = "UNRECOGNIZED_C1"; +- Opcode[Opcode["UNRECOGNIZED_C2"] = 194] = "UNRECOGNIZED_C2"; +- Opcode[Opcode["UNRECOGNIZED_C3"] = 195] = "UNRECOGNIZED_C3"; +- Opcode[Opcode["UNRECOGNIZED_C4"] = 196] = "UNRECOGNIZED_C4"; +- Opcode[Opcode["UNRECOGNIZED_C5"] = 197] = "UNRECOGNIZED_C5"; +- Opcode[Opcode["UNRECOGNIZED_C6"] = 198] = "UNRECOGNIZED_C6"; +- Opcode[Opcode["UNRECOGNIZED_C7"] = 199] = "UNRECOGNIZED_C7"; +- Opcode[Opcode["UNRECOGNIZED_C8"] = 200] = "UNRECOGNIZED_C8"; +- Opcode[Opcode["UNRECOGNIZED_C9"] = 201] = "UNRECOGNIZED_C9"; +- Opcode[Opcode["UNRECOGNIZED_CA"] = 202] = "UNRECOGNIZED_CA"; +- Opcode[Opcode["UNRECOGNIZED_CB"] = 203] = "UNRECOGNIZED_CB"; +- Opcode[Opcode["UNRECOGNIZED_CC"] = 204] = "UNRECOGNIZED_CC"; +- Opcode[Opcode["UNRECOGNIZED_CD"] = 205] = "UNRECOGNIZED_CD"; +- Opcode[Opcode["UNRECOGNIZED_CE"] = 206] = "UNRECOGNIZED_CE"; +- Opcode[Opcode["UNRECOGNIZED_CF"] = 207] = "UNRECOGNIZED_CF"; +- Opcode[Opcode["UNRECOGNIZED_D0"] = 208] = "UNRECOGNIZED_D0"; +- Opcode[Opcode["UNRECOGNIZED_D1"] = 209] = "UNRECOGNIZED_D1"; +- Opcode[Opcode["UNRECOGNIZED_D2"] = 210] = "UNRECOGNIZED_D2"; +- Opcode[Opcode["UNRECOGNIZED_D3"] = 211] = "UNRECOGNIZED_D3"; +- Opcode[Opcode["UNRECOGNIZED_D4"] = 212] = "UNRECOGNIZED_D4"; +- Opcode[Opcode["UNRECOGNIZED_D5"] = 213] = "UNRECOGNIZED_D5"; +- Opcode[Opcode["UNRECOGNIZED_D6"] = 214] = "UNRECOGNIZED_D6"; +- Opcode[Opcode["UNRECOGNIZED_D7"] = 215] = "UNRECOGNIZED_D7"; +- Opcode[Opcode["UNRECOGNIZED_D8"] = 216] = "UNRECOGNIZED_D8"; +- Opcode[Opcode["UNRECOGNIZED_D9"] = 217] = "UNRECOGNIZED_D9"; +- Opcode[Opcode["UNRECOGNIZED_DA"] = 218] = "UNRECOGNIZED_DA"; +- Opcode[Opcode["UNRECOGNIZED_DB"] = 219] = "UNRECOGNIZED_DB"; +- Opcode[Opcode["UNRECOGNIZED_DC"] = 220] = "UNRECOGNIZED_DC"; +- Opcode[Opcode["UNRECOGNIZED_DD"] = 221] = "UNRECOGNIZED_DD"; +- Opcode[Opcode["UNRECOGNIZED_DE"] = 222] = "UNRECOGNIZED_DE"; +- Opcode[Opcode["UNRECOGNIZED_DF"] = 223] = "UNRECOGNIZED_DF"; +- Opcode[Opcode["UNRECOGNIZED_E0"] = 224] = "UNRECOGNIZED_E0"; +- Opcode[Opcode["UNRECOGNIZED_E1"] = 225] = "UNRECOGNIZED_E1"; +- Opcode[Opcode["UNRECOGNIZED_E2"] = 226] = "UNRECOGNIZED_E2"; +- Opcode[Opcode["UNRECOGNIZED_E3"] = 227] = "UNRECOGNIZED_E3"; +- Opcode[Opcode["UNRECOGNIZED_E4"] = 228] = "UNRECOGNIZED_E4"; +- Opcode[Opcode["UNRECOGNIZED_E5"] = 229] = "UNRECOGNIZED_E5"; +- Opcode[Opcode["UNRECOGNIZED_E6"] = 230] = "UNRECOGNIZED_E6"; +- Opcode[Opcode["UNRECOGNIZED_E7"] = 231] = "UNRECOGNIZED_E7"; +- Opcode[Opcode["UNRECOGNIZED_E8"] = 232] = "UNRECOGNIZED_E8"; +- Opcode[Opcode["UNRECOGNIZED_E9"] = 233] = "UNRECOGNIZED_E9"; +- Opcode[Opcode["UNRECOGNIZED_EA"] = 234] = "UNRECOGNIZED_EA"; +- Opcode[Opcode["UNRECOGNIZED_EB"] = 235] = "UNRECOGNIZED_EB"; +- Opcode[Opcode["UNRECOGNIZED_EC"] = 236] = "UNRECOGNIZED_EC"; +- Opcode[Opcode["UNRECOGNIZED_ED"] = 237] = "UNRECOGNIZED_ED"; +- Opcode[Opcode["UNRECOGNIZED_EE"] = 238] = "UNRECOGNIZED_EE"; +- Opcode[Opcode["UNRECOGNIZED_EF"] = 239] = "UNRECOGNIZED_EF"; +- // Call operations +- Opcode[Opcode["CREATE"] = 240] = "CREATE"; +- Opcode[Opcode["CALL"] = 241] = "CALL"; +- Opcode[Opcode["CALLCODE"] = 242] = "CALLCODE"; +- Opcode[Opcode["RETURN"] = 243] = "RETURN"; +- Opcode[Opcode["DELEGATECALL"] = 244] = "DELEGATECALL"; +- Opcode[Opcode["CREATE2"] = 245] = "CREATE2"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_F6"] = 246] = "UNRECOGNIZED_F6"; +- Opcode[Opcode["UNRECOGNIZED_F7"] = 247] = "UNRECOGNIZED_F7"; +- Opcode[Opcode["UNRECOGNIZED_F8"] = 248] = "UNRECOGNIZED_F8"; +- Opcode[Opcode["UNRECOGNIZED_F9"] = 249] = "UNRECOGNIZED_F9"; +- // Other operations +- Opcode[Opcode["STATICCALL"] = 250] = "STATICCALL"; +- // Unallocated +- Opcode[Opcode["UNRECOGNIZED_FB"] = 251] = "UNRECOGNIZED_FB"; +- Opcode[Opcode["UNRECOGNIZED_FC"] = 252] = "UNRECOGNIZED_FC"; +- // Other operations +- Opcode[Opcode["REVERT"] = 253] = "REVERT"; +- Opcode[Opcode["INVALID"] = 254] = "INVALID"; +- Opcode[Opcode["SELFDESTRUCT"] = 255] = "SELFDESTRUCT"; +-})(Opcode = exports.Opcode || (exports.Opcode = {})); +-function opcodeName(opcode) { +- return Opcode[opcode] ?? ``; +-} +-exports.opcodeName = opcodeName; +-function isPush(opcode) { +- return opcode >= Opcode.PUSH1 && opcode <= Opcode.PUSH32; +-} +-exports.isPush = isPush; +-function isJump(opcode) { +- return opcode === Opcode.JUMP || opcode === Opcode.JUMPI; +-} +-exports.isJump = isJump; +-function getPushLength(opcode) { +- return opcode - Opcode.PUSH1 + 1; +-} +-exports.getPushLength = getPushLength; +-function getOpcodeLength(opcode) { +- if (!isPush(opcode)) { +- return 1; +- } +- return 1 + getPushLength(opcode); +-} +-exports.getOpcodeLength = getOpcodeLength; +-function isCall(opcode) { +- return (opcode === Opcode.CALL || +- opcode === Opcode.CALLCODE || +- opcode === Opcode.DELEGATECALL || +- opcode === Opcode.STATICCALL); +-} +-exports.isCall = isCall; +-function isCreate(opcode) { +- return opcode === Opcode.CREATE || opcode === Opcode.CREATE2; +-} +-exports.isCreate = isCreate; ++exports.opcodeToString = exports.isCreate = exports.isCall = exports.getOpcodeLength = exports.getPushLength = exports.isJump = exports.isPush = void 0; ++var edr_1 = require("@nomicfoundation/edr"); ++Object.defineProperty(exports, "isPush", { enumerable: true, get: function () { return edr_1.isPush; } }); ++Object.defineProperty(exports, "isJump", { enumerable: true, get: function () { return edr_1.isJump; } }); ++Object.defineProperty(exports, "getPushLength", { enumerable: true, get: function () { return edr_1.getPushLength; } }); ++Object.defineProperty(exports, "getOpcodeLength", { enumerable: true, get: function () { return edr_1.getOpcodeLength; } }); ++Object.defineProperty(exports, "isCall", { enumerable: true, get: function () { return edr_1.isCall; } }); ++Object.defineProperty(exports, "isCreate", { enumerable: true, get: function () { return edr_1.isCreate; } }); ++Object.defineProperty(exports, "opcodeToString", { enumerable: true, get: function () { return edr_1.opcodeToString; } }); + //# sourceMappingURL=opcodes.js.map +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/opcodes.js.map b/internal/hardhat-network/stack-traces/opcodes.js.map +index 9a8272264f21d996492dc1efdeddf2619211adc1..c572f64326e70d71e7efb9cecba0f007e7679213 100644 +--- a/internal/hardhat-network/stack-traces/opcodes.js.map ++++ b/internal/hardhat-network/stack-traces/opcodes.js.map +@@ -1 +1 @@ +-{"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/opcodes.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/opcodes.ts"],"names":[],"mappings":";;;AAAA,4CAS8B;AAP5B,6FAAA,MAAM,OAAA;AACN,6FAAA,MAAM,OAAA;AACN,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,6FAAA,MAAM,OAAA;AACN,+FAAA,QAAQ,OAAA;AACR,qGAAA,cAAc,OAAA"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/solidityTracer.js b/internal/hardhat-network/stack-traces/solidityTracer.js +index 08f4e6bf80b81fed910dccc3052b9c886fd0338e..6561e5d5e8d92b7ecec271a8fd41a9a6593dec06 100644 +--- a/internal/hardhat-network/stack-traces/solidityTracer.js ++++ b/internal/hardhat-network/stack-traces/solidityTracer.js +@@ -7,8 +7,6 @@ const exit_1 = require("../provider/vm/exit"); + const error_inferrer_1 = require("./error-inferrer"); + const mapped_inlined_internal_functions_heuristics_1 = require("./mapped-inlined-internal-functions-heuristics"); + const message_trace_1 = require("./message-trace"); +-const model_1 = require("./model"); +-const opcodes_1 = require("./opcodes"); + const solidity_stack_trace_1 = require("./solidity-stack-trace"); + class SolidityTracer { + constructor() { +@@ -118,11 +116,11 @@ class SolidityTracer { + const nextStep = trace.steps[stepIndex + 1]; + if ((0, message_trace_1.isEvmStep)(step)) { + const inst = trace.bytecode.getInstruction(step.pc); +- if (inst.jumpType === model_1.JumpType.INTO_FUNCTION && ++ if (inst.jumpType === 1 /* JumpType.INTO_FUNCTION */ && + nextStep !== undefined) { + const nextEvmStep = nextStep; // A jump can't be followed by a subtrace + const nextInst = trace.bytecode.getInstruction(nextEvmStep.pc); +- if (nextInst !== undefined && nextInst.opcode === opcodes_1.Opcode.JUMPDEST) { ++ if (nextInst !== undefined && nextInst.opcode === 91 /* Opcode.JUMPDEST */) { + stacktrace.push((0, error_inferrer_1.instructionToCallstackStackTraceEntry)(trace.bytecode, inst)); + if (nextInst.location !== undefined) { + jumpedIntoFunction = true; +@@ -130,7 +128,7 @@ class SolidityTracer { + functionJumpdests.push(nextInst); + } + } +- else if (inst.jumpType === model_1.JumpType.OUTOF_FUNCTION) { ++ else if (inst.jumpType === 2 /* JumpType.OUTOF_FUNCTION */) { + stacktrace.pop(); + functionJumpdests.pop(); + } +diff --git a/internal/hardhat-network/stack-traces/solidityTracer.js.map b/internal/hardhat-network/stack-traces/solidityTracer.js.map +index 8aa9ffe76723470f68ffd824d9cac39de6494962..f7d29ee500cd49317bba4b2c935643a175323a58 100644 +--- a/internal/hardhat-network/stack-traces/solidityTracer.js.map ++++ b/internal/hardhat-network/stack-traces/solidityTracer.js.map +@@ -1 +1 @@ +-{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"solidityTracer.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/solidityTracer.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/internal/hardhat-network/stack-traces/vm-trace-decoder.js b/internal/hardhat-network/stack-traces/vm-trace-decoder.js +index 4d344963203e4ddb9e0ce4eddc2c08797847547b..0f78fe89d0d4028a04b3a5bae38d45f65e6ab939 100644 +--- a/internal/hardhat-network/stack-traces/vm-trace-decoder.js ++++ b/internal/hardhat-network/stack-traces/vm-trace-decoder.js +@@ -9,7 +9,6 @@ const debug_1 = __importDefault(require("debug")); + const reporter_1 = require("../../sentry/reporter"); + const compiler_to_model_1 = require("./compiler-to-model"); + const message_trace_1 = require("./message-trace"); +-const model_1 = require("./model"); + const solidity_stack_trace_1 = require("./solidity-stack-trace"); + const log = (0, debug_1.default)("hardhat:core:hardhat-network:node"); + class VmTraceDecoder { +@@ -36,9 +35,9 @@ class VmTraceDecoder { + const func = bytecode.contract.getFunctionFromSelector(calldata.slice(0, 4)); + const functionName = func === undefined + ? solidity_stack_trace_1.UNRECOGNIZED_FUNCTION_NAME +- : func.type === model_1.ContractFunctionType.FALLBACK ++ : func.type === 2 /* ContractFunctionType.FALLBACK */ + ? solidity_stack_trace_1.FALLBACK_FUNCTION_NAME +- : func.type === model_1.ContractFunctionType.RECEIVE ++ : func.type === 3 /* ContractFunctionType.RECEIVE */ + ? solidity_stack_trace_1.RECEIVE_FUNCTION_NAME + : func.name; + return { +diff --git a/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map b/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +index 445c3d5dd155afa63e92ca1bc586e86b2edc2f1e..dc762aedbfaaa335080d1335d0afe771be636cf9 100644 +--- a/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map ++++ b/internal/hardhat-network/stack-traces/vm-trace-decoder.js.map +@@ -1 +1 @@ +-{"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,kDAA0B;AAC1B,oDAAiD;AAEjD,2DAAqE;AAErE,mDAKyB;AACzB,mCAAyD;AACzD,iEAKgC;AAEhC,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAC;AAEvD,MAAa,cAAc;IACzB,YAA6B,oBAAyC;QAAzC,yBAAoB,GAApB,oBAAoB,CAAqB;IAAG,CAAC;IAEnE,kCAAkC,CACvC,IAAY,EACZ,QAAiB;QAEjB,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAC3D,IAAI,EACJ,QAAQ,CACT,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,iDAA0B,CAAC;QAE3E,IAAI,QAAQ,EAAE;YACZ,OAAO;gBACL,YAAY;aACb,CAAC;SACH;aAAM;YACL,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,OAAO;oBACL,YAAY;oBACZ,YAAY,EAAE,EAAE;iBACjB,CAAC;aACH;iBAAM;gBACL,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACpD,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACrB,CAAC;gBAEF,MAAM,YAAY,GAChB,IAAI,KAAK,SAAS;oBAChB,CAAC,CAAC,iDAA0B;oBAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,QAAQ;wBAC7C,CAAC,CAAC,6CAAsB;wBACxB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,4BAAoB,CAAC,OAAO;4BAC5C,CAAC,CAAC,4CAAqB;4BACvB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEhB,OAAO;oBACL,YAAY;oBACZ,YAAY;iBACb,CAAC;aACH;SACF;IACH,CAAC;IAEM,uBAAuB,CAAC,YAA0B;QACvD,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,EAAE;YACnC,OAAO,YAAY,CAAC;SACrB;QAED,OAAO;YACL,GAAG,YAAY;YACf,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CACpD,YAAY,CAAC,IAAI,EACjB,IAAA,6BAAa,EAAC,YAAY,CAAC,CAC5B;YACD,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,IAAA,yBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CACnD;SACF,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAkB;QACnC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF;AAnED,wCAmEC;AAED,SAAgB,wBAAwB,CACtC,cAA8B,EAC9B,aAA4B;IAE5B,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,EAAE;QAC1C,OAAO;KACR;IAED,IAAI;QACF,KAAK,MAAM,SAAS,IAAI,aAAa,CAAC,UAAU,EAAE;YAChD,MAAM,SAAS,GAAG,IAAA,kDAA8B,EAC9C,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,CACjB,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,IACE,aAAa,CAAC,eAAe,KAAK,IAAI;oBACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC5C;oBACA,SAAS;iBACV;gBAED,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aACtC;SACF;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,wGAAwG,CACzG,CACF,CAAC;QAEF,GAAG,CACD,kIAAkI,EAClI,KAAK,CACN,CAAC;QAEF,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,mBAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC7B;KACF;AACH,CAAC;AA3CD,4DA2CC"} +\ No newline at end of file ++{"version":3,"file":"vm-trace-decoder.js","sourceRoot":"","sources":["../../../src/internal/hardhat-network/stack-traces/vm-trace-decoder.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/internal/core/providers/construction.ts b/src/internal/core/providers/construction.ts index e7302ba37a7f33d46f91142831c1337b767e00cf..59ac2c3439379006407b66b5c22bf2007d92f750 100644 @@ -389,102 +2250,1152 @@ index 53e1b4545a5c57a1b3216240675ad5d9bd4353f8..c9fcc7cbea28ca0fcac3aa37c3a976df } diff --git a/src/internal/hardhat-network/stack-traces/compiler-to-model.ts b/src/internal/hardhat-network/stack-traces/compiler-to-model.ts -index e801691fe54b61794278083d0b802cdd05bb98fb..0a732eb557179f1db5fe8c675025ffa74a9d37dd 100644 +index e801691fe54b61794278083d0b802cdd05bb98fb..63bbf517f1e62e1e1dfeba76b4df7aaa5293dbaa 100644 --- a/src/internal/hardhat-network/stack-traces/compiler-to-model.ts +++ b/src/internal/hardhat-network/stack-traces/compiler-to-model.ts -@@ -157,8 +157,6 @@ function processContractAstNode( - contractNode.linearizedBaseContracts - ); - -- file.addContract(contract); +@@ -1,699 +1 @@ +-import debug from "debug"; - - for (const node of contractNode.nodes) { - if (node.nodeType === "FunctionDefinition") { - const functionAbis = contractAbi?.filter( -diff --git a/src/internal/hardhat-network/stack-traces/model.ts b/src/internal/hardhat-network/stack-traces/model.ts -index 534ae112a663f90fce98e68efca01db3d391c96f..86b3d57c32a5081b93860e27c58940050b64b913 100644 ---- a/src/internal/hardhat-network/stack-traces/model.ts -+++ b/src/internal/hardhat-network/stack-traces/model.ts -@@ -36,28 +36,19 @@ export enum ContractFunctionVisibility { - } - - export class SourceFile { -- public readonly contracts: Contract[] = []; -- public readonly functions: ContractFunction[] = []; -+ private readonly _functions: ContractFunction[] = []; - - constructor( - public readonly sourceName: string, - public readonly content: string - ) {} - -- public addContract(contract: Contract) { -- if (contract.location.file !== this) { -- throw new Error("Trying to add a contract from another file"); -- } +-import { +- CompilerInput, +- CompilerOutput, +- CompilerOutputBytecode, +-} from "../../../types"; - -- this.contracts.push(contract); -- } +-import { +- getLibraryAddressPositions, +- normalizeCompilerOutputBytecode, +-} from "./library-utils"; +-import { +- Bytecode, +- Contract, +- ContractFunction, +- ContractFunctionType, +- ContractFunctionVisibility, +- ContractType, +- CustomError, +- SourceFile, +- SourceLocation, +-} from "./model"; +-import { decodeInstructions } from "./source-maps"; - - public addFunction(func: ContractFunction) { - if (func.location.file !== this) { - throw new Error("Trying to add a function from another file"); - } - -- this.functions.push(func); -+ this._functions.push(func); - } - - public getContainingFunction( -@@ -65,7 +56,7 @@ export class SourceFile { - ): ContractFunction | undefined { - // TODO: Optimize this with a binary search or an internal tree +-const abi = require("ethereumjs-abi"); +- +-const log = debug("hardhat:core:hardhat-network:compiler-to-model"); +- +-interface ContractAbiEntry { +- name?: string; +- inputs?: Array<{ +- type: string; +- }>; +-} +- +-type ContractAbi = ContractAbiEntry[]; +- +-export function createModelsAndDecodeBytecodes( +- solcVersion: string, +- compilerInput: CompilerInput, +- compilerOutput: CompilerOutput +-): Bytecode[] { +- const fileIdToSourceFile = new Map(); +- const contractIdToContract = new Map(); +- +- createSourcesModelFromAst( +- compilerOutput, +- compilerInput, +- fileIdToSourceFile, +- contractIdToContract +- ); +- +- const bytecodes = decodeBytecodes( +- solcVersion, +- compilerOutput, +- fileIdToSourceFile, +- contractIdToContract +- ); +- +- correctSelectors(bytecodes, compilerOutput); +- +- return bytecodes; +-} +- +-function createSourcesModelFromAst( +- compilerOutput: CompilerOutput, +- compilerInput: CompilerInput, +- fileIdToSourceFile: Map, +- contractIdToContract: Map +-) { +- const contractIdToLinearizedBaseContractIds = new Map(); +- +- // Create a `sourceName => contract => abi` mapping +- const sourceNameToContractToAbi = new Map>(); +- for (const [sourceName, contracts] of Object.entries( +- compilerOutput.contracts +- )) { +- const contractToAbi = new Map(); +- sourceNameToContractToAbi.set(sourceName, contractToAbi); +- for (const [contractName, contract] of Object.entries(contracts)) { +- contractToAbi.set(contractName, contract.abi); +- } +- } +- +- for (const [sourceName, source] of Object.entries(compilerOutput.sources)) { +- const contractToAbi = sourceNameToContractToAbi.get(sourceName); +- const file = new SourceFile( +- sourceName, +- compilerInput.sources[sourceName].content +- ); +- +- fileIdToSourceFile.set(source.id, file); +- +- for (const node of source.ast.nodes) { +- if (node.nodeType === "ContractDefinition") { +- const contractType = contractKindToContractType(node.contractKind); +- +- if (contractType === undefined) { +- continue; +- } +- +- const contractAbi = contractToAbi?.get(node.name); +- +- processContractAstNode( +- file, +- node, +- fileIdToSourceFile, +- contractType, +- contractIdToContract, +- contractIdToLinearizedBaseContractIds, +- contractAbi +- ); +- } +- +- // top-level functions +- if (node.nodeType === "FunctionDefinition") { +- processFunctionDefinitionAstNode( +- node, +- fileIdToSourceFile, +- undefined, +- file +- ); +- } +- } +- } +- +- applyContractsInheritance( +- contractIdToContract, +- contractIdToLinearizedBaseContractIds +- ); +-} +- +-function processContractAstNode( +- file: SourceFile, +- contractNode: any, +- fileIdToSourceFile: Map, +- contractType: ContractType, +- contractIdToContract: Map, +- contractIdToLinearizedBaseContractIds: Map, +- contractAbi?: ContractAbi +-) { +- const contractLocation = astSrcToSourceLocation( +- contractNode.src, +- fileIdToSourceFile +- )!; +- +- const contract = new Contract( +- contractNode.name, +- contractType, +- contractLocation +- ); +- +- contractIdToContract.set(contractNode.id, contract); +- contractIdToLinearizedBaseContractIds.set( +- contractNode.id, +- contractNode.linearizedBaseContracts +- ); +- +- file.addContract(contract); +- +- for (const node of contractNode.nodes) { +- if (node.nodeType === "FunctionDefinition") { +- const functionAbis = contractAbi?.filter( +- (abiEntry) => abiEntry.name === node.name +- ); +- +- processFunctionDefinitionAstNode( +- node, +- fileIdToSourceFile, +- contract, +- file, +- functionAbis +- ); +- } else if (node.nodeType === "ModifierDefinition") { +- processModifierDefinitionAstNode( +- node, +- fileIdToSourceFile, +- contract, +- file +- ); +- } else if (node.nodeType === "VariableDeclaration") { +- const getterAbi = contractAbi?.find( +- (abiEntry) => abiEntry.name === node.name +- ); +- processVariableDeclarationAstNode( +- node, +- fileIdToSourceFile, +- contract, +- file, +- getterAbi +- ); +- } +- } +-} +- +-function processFunctionDefinitionAstNode( +- functionDefinitionNode: any, +- fileIdToSourceFile: Map, +- contract: Contract | undefined, +- file: SourceFile, +- functionAbis?: ContractAbiEntry[] +-) { +- if (functionDefinitionNode.implemented === false) { +- return; +- } +- +- const functionType = functionDefinitionKindToFunctionType( +- functionDefinitionNode.kind +- ); +- const functionLocation = astSrcToSourceLocation( +- functionDefinitionNode.src, +- fileIdToSourceFile +- )!; +- const visibility = astVisibilityToVisibility( +- functionDefinitionNode.visibility +- ); +- +- let selector: Buffer | undefined; +- if ( +- functionType === ContractFunctionType.FUNCTION && +- (visibility === ContractFunctionVisibility.EXTERNAL || +- visibility === ContractFunctionVisibility.PUBLIC) +- ) { +- selector = astFunctionDefinitionToSelector(functionDefinitionNode); +- } +- +- // function can be overloaded, match the abi by the selector +- const matchingFunctionAbi = functionAbis?.find((functionAbi) => { +- if (functionAbi.name === undefined) { +- return false; +- } +- +- const functionAbiSelector = abi.methodID( +- functionAbi.name, +- functionAbi.inputs?.map((input) => input.type) ?? [] +- ); +- +- if (selector === undefined || functionAbiSelector === undefined) { +- return false; +- } +- +- return selector.equals(functionAbiSelector); +- }); +- +- const paramTypes = matchingFunctionAbi?.inputs?.map((input) => input.type); +- +- const cf = new ContractFunction( +- functionDefinitionNode.name, +- functionType, +- functionLocation, +- contract, +- visibility, +- functionDefinitionNode.stateMutability === "payable", +- selector, +- paramTypes +- ); +- +- if (contract !== undefined) { +- contract.addLocalFunction(cf); +- } +- +- file.addFunction(cf); +-} +- +-function processModifierDefinitionAstNode( +- modifierDefinitionNode: any, +- fileIdToSourceFile: Map, +- contract: Contract, +- file: SourceFile +-) { +- const functionLocation = astSrcToSourceLocation( +- modifierDefinitionNode.src, +- fileIdToSourceFile +- )!; +- +- const cf = new ContractFunction( +- modifierDefinitionNode.name, +- ContractFunctionType.MODIFIER, +- functionLocation, +- contract +- ); +- +- contract.addLocalFunction(cf); +- file.addFunction(cf); +-} +- +-function canonicalAbiTypeForElementaryOrUserDefinedTypes(keyType: any): any { +- if (isElementaryType(keyType)) { +- return toCanonicalAbiType(keyType.name); +- } +- +- if (isEnumType(keyType)) { +- return "uint256"; +- } +- +- if (isContractType(keyType)) { +- return "address"; +- } +- +- return undefined; +-} +- +-function getPublicVariableSelectorFromDeclarationAstNode( +- variableDeclaration: any +-) { +- if (variableDeclaration.functionSelector !== undefined) { +- return Buffer.from(variableDeclaration.functionSelector, "hex"); +- } +- +- const paramTypes: string[] = []; +- +- // VariableDeclaration nodes for function parameters or state variables will always +- // have their typeName fields defined. +- let nextType = variableDeclaration.typeName; +- while (true) { +- if (nextType.nodeType === "Mapping") { +- const canonicalType = canonicalAbiTypeForElementaryOrUserDefinedTypes( +- nextType.keyType +- ); +- paramTypes.push(canonicalType); +- +- nextType = nextType.valueType; +- } else { +- if (nextType.nodeType === "ArrayTypeName") { +- paramTypes.push("uint256"); +- } +- +- break; +- } +- } +- +- return abi.methodID(variableDeclaration.name, paramTypes); +-} +- +-function processVariableDeclarationAstNode( +- variableDeclarationNode: any, +- fileIdToSourceFile: Map, +- contract: Contract, +- file: SourceFile, +- getterAbi?: ContractAbiEntry +-) { +- const visibility = astVisibilityToVisibility( +- variableDeclarationNode.visibility +- ); +- +- // Variables can't be external +- if (visibility !== ContractFunctionVisibility.PUBLIC) { +- return; +- } +- +- const functionLocation = astSrcToSourceLocation( +- variableDeclarationNode.src, +- fileIdToSourceFile +- )!; +- +- const paramTypes = getterAbi?.inputs?.map((input) => input.type); +- +- const cf = new ContractFunction( +- variableDeclarationNode.name, +- ContractFunctionType.GETTER, +- functionLocation, +- contract, +- visibility, +- false, // Getters aren't payable +- getPublicVariableSelectorFromDeclarationAstNode(variableDeclarationNode), +- paramTypes +- ); +- +- contract.addLocalFunction(cf); +- file.addFunction(cf); +-} +- +-function applyContractsInheritance( +- contractIdToContract: Map, +- contractIdToLinearizedBaseContractIds: Map +-) { +- for (const [cid, contract] of contractIdToContract.entries()) { +- const inheritanceIds = contractIdToLinearizedBaseContractIds.get(cid)!; +- +- for (const baseId of inheritanceIds) { +- const baseContract = contractIdToContract.get(baseId); +- +- if (baseContract === undefined) { +- // This list includes interface, which we don't model +- continue; +- } +- +- contract.addNextLinearizedBaseContract(baseContract); +- } +- } +-} +- +-function decodeBytecodes( +- solcVersion: string, +- compilerOutput: CompilerOutput, +- fileIdToSourceFile: Map, +- contractIdToContract: Map +-): Bytecode[] { +- const bytecodes: Bytecode[] = []; +- +- for (const contract of contractIdToContract.values()) { +- const contractFile = contract.location.file.sourceName; +- const contractEvmOutput = +- compilerOutput.contracts[contractFile][contract.name].evm; +- const contractAbiOutput = +- compilerOutput.contracts[contractFile][contract.name].abi; +- +- for (const abiItem of contractAbiOutput) { +- if (abiItem.type === "error") { +- const customError = CustomError.fromABI(abiItem.name, abiItem.inputs); +- +- if (customError !== undefined) { +- contract.addCustomError(customError); +- } else { +- log(`Couldn't build CustomError for error '${abiItem.name}'`); +- } +- } +- } +- +- // This is an abstract contract +- if (contractEvmOutput.bytecode.object === "") { +- continue; +- } +- +- const deploymentBytecode = decodeEvmBytecode( +- contract, +- solcVersion, +- true, +- contractEvmOutput.bytecode, +- fileIdToSourceFile +- ); +- +- const runtimeBytecode = decodeEvmBytecode( +- contract, +- solcVersion, +- false, +- contractEvmOutput.deployedBytecode, +- fileIdToSourceFile +- ); +- +- bytecodes.push(deploymentBytecode); +- bytecodes.push(runtimeBytecode); +- } +- +- return bytecodes; +-} +- +-function decodeEvmBytecode( +- contract: Contract, +- solcVersion: string, +- isDeployment: boolean, +- compilerBytecode: CompilerOutputBytecode, +- fileIdToSourceFile: Map +-): Bytecode { +- const libraryAddressPositions = getLibraryAddressPositions(compilerBytecode); +- +- const immutableReferences = +- compilerBytecode.immutableReferences !== undefined +- ? Object.values(compilerBytecode.immutableReferences).reduce( +- (previousValue, currentValue) => [...previousValue, ...currentValue], +- [] +- ) +- : []; +- +- const normalizedCode = normalizeCompilerOutputBytecode( +- compilerBytecode.object, +- libraryAddressPositions +- ); +- +- const instructions = decodeInstructions( +- normalizedCode, +- compilerBytecode.sourceMap, +- fileIdToSourceFile, +- isDeployment +- ); +- +- return new Bytecode( +- contract, +- isDeployment, +- normalizedCode, +- instructions, +- libraryAddressPositions, +- immutableReferences, +- solcVersion +- ); +-} +- +-function astSrcToSourceLocation( +- src: string, +- fileIdToSourceFile: Map +-): SourceLocation | undefined { +- const [offset, length, fileId] = src.split(":").map((p) => +p); +- const file = fileIdToSourceFile.get(fileId); +- +- if (file === undefined) { +- return undefined; +- } +- +- return new SourceLocation(file, offset, length); +-} +- +-function contractKindToContractType( +- contractKind?: string +-): ContractType | undefined { +- if (contractKind === "library") { +- return ContractType.LIBRARY; +- } +- +- if (contractKind === "contract") { +- return ContractType.CONTRACT; +- } +- +- return undefined; +-} +- +-function astVisibilityToVisibility( +- visibility: string +-): ContractFunctionVisibility { +- if (visibility === "private") { +- return ContractFunctionVisibility.PRIVATE; +- } +- +- if (visibility === "internal") { +- return ContractFunctionVisibility.INTERNAL; +- } +- +- if (visibility === "public") { +- return ContractFunctionVisibility.PUBLIC; +- } +- +- return ContractFunctionVisibility.EXTERNAL; +-} +- +-function functionDefinitionKindToFunctionType( +- kind: string | undefined +-): ContractFunctionType { +- if (kind === "constructor") { +- return ContractFunctionType.CONSTRUCTOR; +- } +- +- if (kind === "fallback") { +- return ContractFunctionType.FALLBACK; +- } +- +- if (kind === "receive") { +- return ContractFunctionType.RECEIVE; +- } +- +- if (kind === "freeFunction") { +- return ContractFunctionType.FREE_FUNCTION; +- } +- +- return ContractFunctionType.FUNCTION; +-} +- +-function astFunctionDefinitionToSelector(functionDefinition: any): Buffer { +- const paramTypes: string[] = []; +- +- // The function selector is available in solc versions >=0.6.0 +- if (functionDefinition.functionSelector !== undefined) { +- return Buffer.from(functionDefinition.functionSelector, "hex"); +- } +- +- for (const param of functionDefinition.parameters.parameters) { +- if (isContractType(param)) { +- paramTypes.push("address"); +- continue; +- } +- +- // TODO: implement ABIv2 structs parsing +- // This might mean we need to parse struct definitions before +- // resolving types and trying to calculate function selectors. +- // if (isStructType(param)) { +- // paramTypes.push(something); +- // continue; +- // } +- +- if (isEnumType(param)) { +- // TODO: If the enum has >= 256 elements this will fail. It should be a uint16. This is +- // complicated, as enums can be inherited. Fortunately, if multiple parent contracts +- // define the same enum, solc fails to compile. +- paramTypes.push("uint8"); +- continue; +- } +- +- // The rest of the function parameters always have their typeName node defined +- const typename = param.typeName; +- if ( +- typename.nodeType === "ArrayTypeName" || +- typename.nodeType === "FunctionTypeName" || +- typename.nodeType === "Mapping" +- ) { +- paramTypes.push(typename.typeDescriptions.typeString); +- continue; +- } +- +- paramTypes.push(toCanonicalAbiType(typename.name)); +- } +- +- return abi.methodID(functionDefinition.name, paramTypes); +-} +- +-function isContractType(param: any): boolean { +- return ( +- (param.typeName?.nodeType === "UserDefinedTypeName" || +- param?.nodeType === "UserDefinedTypeName") && +- param.typeDescriptions?.typeString !== undefined && +- param.typeDescriptions.typeString.startsWith("contract ") +- ); +-} +- +-function isEnumType(param: any): boolean { +- return ( +- (param.typeName?.nodeType === "UserDefinedTypeName" || +- param?.nodeType === "UserDefinedTypeName") && +- param.typeDescriptions?.typeString !== undefined && +- param.typeDescriptions.typeString.startsWith("enum ") +- ); +-} +- +-function isElementaryType(param: any) { +- return ( +- param.type === "ElementaryTypeName" || +- param.nodeType === "ElementaryTypeName" +- ); +-} +- +-function toCanonicalAbiType(type: string): string { +- if (type.startsWith("int[")) { +- return `int256${type.slice(3)}`; +- } +- +- if (type === "int") { +- return "int256"; +- } +- +- if (type.startsWith("uint[")) { +- return `uint256${type.slice(4)}`; +- } +- +- if (type === "uint") { +- return "uint256"; +- } +- +- if (type.startsWith("fixed[")) { +- return `fixed128x128${type.slice(5)}`; +- } +- +- if (type === "fixed") { +- return "fixed128x128"; +- } +- +- if (type.startsWith("ufixed[")) { +- return `ufixed128x128${type.slice(6)}`; +- } +- +- if (type === "ufixed") { +- return "ufixed128x128"; +- } +- +- return type; +-} +- +-function correctSelectors( +- bytecodes: Bytecode[], +- compilerOutput: CompilerOutput +-) { +- for (const bytecode of bytecodes) { +- if (bytecode.isDeployment) { +- continue; +- } +- +- const contract = bytecode.contract; +- const methodIdentifiers = +- compilerOutput.contracts[contract.location.file.sourceName][contract.name] +- .evm.methodIdentifiers; +- +- for (const [signature, hexSelector] of Object.entries(methodIdentifiers)) { +- const functionName = signature.slice(0, signature.indexOf("(")); +- const selector = Buffer.from(hexSelector, "hex"); +- +- const contractFunction = contract.getFunctionFromSelector(selector); +- +- if (contractFunction !== undefined) { +- continue; +- } +- +- const fixedSelector = contract.correctSelector(functionName, selector); +- +- if (!fixedSelector) { +- // eslint-disable-next-line @nomicfoundation/hardhat-internal-rules/only-hardhat-error +- 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.` +- ); +- } +- } +- } +-} ++export { createModelsAndDecodeBytecodes } from "@nomicfoundation/edr"; +diff --git a/src/internal/hardhat-network/stack-traces/debug.ts b/src/internal/hardhat-network/stack-traces/debug.ts +index 03c423f31895ca495059bba42b5568ea10cbaeb7..fb848f6396ca13128d445a532845adcca050c6de 100644 +--- a/src/internal/hardhat-network/stack-traces/debug.ts ++++ b/src/internal/hardhat-network/stack-traces/debug.ts +@@ -10,8 +10,8 @@ import { + MessageTrace, + PrecompileMessageTrace, + } from "./message-trace"; +-import { JumpType } from "./model"; +-import { isJump, isPush, Opcode } from "./opcodes"; ++import { JumpType, jumpTypeToString } from "./model"; ++import { isJump, isPush, opcodeToString } from "./opcodes"; + import { + SolidityStackTrace, + SourceReference, +@@ -147,23 +147,23 @@ function traceSteps( + if (isJump(inst.opcode)) { + const jump = + inst.jumpType !== JumpType.NOT_JUMP +- ? chalk.bold(`(${JumpType[inst.jumpType]})`) ++ ? chalk.bold(`(${jumpTypeToString(inst.jumpType)})`) + : ""; -- for (const func of this.functions) { -+ for (const func of this._functions) { - if (func.location.contains(location)) { - return func; - } -@@ -124,12 +115,12 @@ export class SourceLocation { - } + console.log( +- `${margin} ${pc} ${Opcode[inst.opcode]} ${jump}`.padEnd(50), ++ `${margin} ${pc} ${opcodeToString(inst.opcode)} ${jump}`.padEnd(50), + location + ); + } else if (isPush(inst.opcode)) { + console.log( +- `${margin} ${pc} ${Opcode[inst.opcode]} ${bufferToHex( ++ `${margin} ${pc} ${opcodeToString(inst.opcode)} ${bufferToHex( + inst.pushData! + )}`.padEnd(50), + location + ); + } else { + console.log( +- `${margin} ${pc} ${Opcode[inst.opcode]}`.padEnd(50), ++ `${margin} ${pc} ${opcodeToString(inst.opcode)}`.padEnd(50), + location + ); + } +diff --git a/src/internal/hardhat-network/stack-traces/error-inferrer.ts b/src/internal/hardhat-network/stack-traces/error-inferrer.ts +index e185841f421641b2fe9a7fa34aeaf7b0813723cb..95698cada44b39bf4f1c591b7a8ef6f5ca2a3df2 100644 +--- a/src/internal/hardhat-network/stack-traces/error-inferrer.ts ++++ b/src/internal/hardhat-network/stack-traces/error-inferrer.ts +@@ -641,9 +641,13 @@ export class ErrorInferrer { + ); - export class Contract { -- public readonly localFunctions: ContractFunction[] = []; - public readonly customErrors: CustomError[] = []; + if (calledFunction !== undefined) { +- const isValidCalldata = calledFunction.isValidCalldata( +- trace.calldata.slice(4) +- ); ++ const isValidCalldata = ++ // if we don't know the param types, we just assume that the call is valid ++ calledFunction.paramTypes === undefined || ++ AbiHelpers.isValidCalldata( ++ calledFunction.paramTypes, ++ trace.calldata.slice(4) ++ ); - private _constructor: ContractFunction | undefined; - private _fallback: ContractFunction | undefined; - private _receive: ContractFunction | undefined; -+ private readonly _localFunctions: ContractFunction[] = []; - private readonly _selectorHexToFunction: Map = - new Map(); + if (!isValidCalldata) { + return [ +diff --git a/src/internal/hardhat-network/stack-traces/library-utils.ts b/src/internal/hardhat-network/stack-traces/library-utils.ts +index 9f45bebdcde3092695f44efcd3e6b06222d344bb..8538a24e5a46ff577f9342fbe7fb3ef484fb98cd 100644 +--- a/src/internal/hardhat-network/stack-traces/library-utils.ts ++++ b/src/internal/hardhat-network/stack-traces/library-utils.ts +@@ -1,53 +1,10 @@ +-import { CompilerOutputBytecode } from "../../../types"; +- ++import { ++ getLibraryAddressPositions, ++ linkHexStringBytecode, ++} from "@nomicfoundation/edr"; + import { Opcode } from "./opcodes"; -@@ -174,7 +165,7 @@ export class Contract { - } - } +-export function getLibraryAddressPositions( +- bytecodeOutput: CompilerOutputBytecode +-): number[] { +- const positions = []; +- for (const libs of Object.values(bytecodeOutput.linkReferences)) { +- for (const references of Object.values(libs)) { +- for (const ref of references) { +- positions.push(ref.start); +- } +- } +- } +- +- return positions; +-} +- +-export function normalizeCompilerOutputBytecode( +- compilerOutputBytecodeObject: string, +- addressesPositions: number[] +-): Buffer { +- const ZERO_ADDRESS = "0000000000000000000000000000000000000000"; +- for (const position of addressesPositions) { +- compilerOutputBytecodeObject = linkHexStringBytecode( +- compilerOutputBytecodeObject, +- ZERO_ADDRESS, +- position +- ); +- } +- +- return Buffer.from(compilerOutputBytecodeObject, "hex"); +-} +- +-export function linkHexStringBytecode( +- code: string, +- address: string, +- position: number +-) { +- if (address.startsWith("0x")) { +- address = address.substring(2); +- } +- +- return ( +- code.substring(0, position * 2) + +- address + +- code.slice(position * 2 + address.length) +- ); +-} ++export { getLibraryAddressPositions, linkHexStringBytecode }; + export function zeroOutAddresses( + code: Uint8Array, +diff --git a/src/internal/hardhat-network/stack-traces/model.ts b/src/internal/hardhat-network/stack-traces/model.ts +index 534ae112a663f90fce98e68efca01db3d391c96f..c8c58387f660815730ddfc5b49f0d3cc319620c5 100644 +--- a/src/internal/hardhat-network/stack-traces/model.ts ++++ b/src/internal/hardhat-network/stack-traces/model.ts +@@ -1,409 +1,29 @@ +-import { bytesToHex as bufferToHex } from "@nomicfoundation/ethereumjs-util"; +- +-import { AbiHelpers } from "../../util/abi-helpers"; +- +-import { Opcode } from "./opcodes"; +- +-/* eslint-disable @nomicfoundation/hardhat-internal-rules/only-hardhat-error */ +- +-export enum JumpType { +- NOT_JUMP, +- INTO_FUNCTION, +- OUTOF_FUNCTION, +- INTERNAL_JUMP, +-} +- +-export enum ContractType { +- CONTRACT, +- LIBRARY, +-} +- +-export enum ContractFunctionType { +- CONSTRUCTOR, +- FUNCTION, +- FALLBACK, +- RECEIVE, +- GETTER, +- MODIFIER, +- FREE_FUNCTION, +-} +- +-export enum ContractFunctionVisibility { +- PRIVATE, +- INTERNAL, +- PUBLIC, +- EXTERNAL, +-} +- +-export class SourceFile { +- public readonly contracts: Contract[] = []; +- public readonly functions: ContractFunction[] = []; +- +- constructor( +- public readonly sourceName: string, +- public readonly content: string +- ) {} +- +- public addContract(contract: Contract) { +- if (contract.location.file !== this) { +- throw new Error("Trying to add a contract from another file"); +- } +- +- this.contracts.push(contract); +- } +- +- public addFunction(func: ContractFunction) { +- if (func.location.file !== this) { +- throw new Error("Trying to add a function from another file"); +- } +- +- this.functions.push(func); +- } +- +- public getContainingFunction( +- location: SourceLocation +- ): ContractFunction | undefined { +- // TODO: Optimize this with a binary search or an internal tree +- +- for (const func of this.functions) { +- if (func.location.contains(location)) { +- return func; +- } +- } +- +- return undefined; +- } +-} +- +-export class SourceLocation { +- private _line: number | undefined; +- +- constructor( +- public readonly file: SourceFile, +- public readonly offset: number, +- public readonly length: number +- ) {} +- +- public getStartingLineNumber(): number { +- if (this._line === undefined) { +- this._line = 1; +- +- for (const c of this.file.content.slice(0, this.offset)) { +- if (c === "\n") { +- this._line += 1; +- } +- } +- } +- +- return this._line; +- } +- +- public getContainingFunction(): ContractFunction | undefined { +- return this.file.getContainingFunction(this); +- } +- +- public contains(other: SourceLocation) { +- if (this.file !== other.file) { +- return false; +- } +- +- if (other.offset < this.offset) { +- return false; +- } +- +- return other.offset + other.length <= this.offset + this.length; +- } +- +- public equals(other: SourceLocation) { +- return ( +- this.file === other.file && +- this.offset === other.offset && +- this.length === other.length +- ); +- } +-} +- +-export class Contract { +- public readonly localFunctions: ContractFunction[] = []; +- public readonly customErrors: CustomError[] = []; +- +- private _constructor: ContractFunction | undefined; +- private _fallback: ContractFunction | undefined; +- private _receive: ContractFunction | undefined; +- private readonly _selectorHexToFunction: Map = +- new Map(); +- +- constructor( +- public readonly name: string, +- public readonly type: ContractType, +- public readonly location: SourceLocation +- ) {} +- +- public get constructorFunction(): ContractFunction | undefined { +- return this._constructor; +- } +- +- public get fallback(): ContractFunction | undefined { +- return this._fallback; +- } +- +- public get receive(): ContractFunction | undefined { +- return this._receive; +- } +- +- public addLocalFunction(func: ContractFunction) { +- if (func.contract !== this) { +- throw new Error("Function isn't local"); +- } +- +- if ( +- func.visibility === ContractFunctionVisibility.PUBLIC || +- func.visibility === ContractFunctionVisibility.EXTERNAL +- ) { +- if ( +- func.type === ContractFunctionType.FUNCTION || +- func.type === ContractFunctionType.GETTER +- ) { +- this._selectorHexToFunction.set(bufferToHex(func.selector!), func); +- } else if (func.type === ContractFunctionType.CONSTRUCTOR) { +- this._constructor = func; +- } else if (func.type === ContractFunctionType.FALLBACK) { +- this._fallback = func; +- } else if (func.type === ContractFunctionType.RECEIVE) { +- this._receive = func; +- } +- } +- - this.localFunctions.push(func); -+ this._localFunctions.push(func); - } - - public addCustomError(customError: CustomError) { -@@ -189,7 +180,7 @@ export class Contract { - this._receive = baseContract._receive; - } - +- } +- +- public addCustomError(customError: CustomError) { +- this.customErrors.push(customError); +- } +- +- public addNextLinearizedBaseContract(baseContract: Contract) { +- if (this._fallback === undefined && baseContract._fallback !== undefined) { +- this._fallback = baseContract._fallback; +- } +- if (this._receive === undefined && baseContract._receive !== undefined) { +- this._receive = baseContract._receive; +- } +- - for (const baseContractFunction of baseContract.localFunctions) { -+ for (const baseContractFunction of baseContract._localFunctions) { - if ( - baseContractFunction.type !== ContractFunctionType.GETTER && - baseContractFunction.type !== ContractFunctionType.FUNCTION -@@ -305,52 +296,10 @@ export class Instruction { - public readonly pc: number, - public readonly opcode: Opcode, - public readonly jumpType: JumpType, -+ // Used only for debugging - public readonly pushData?: Buffer, - public readonly location?: SourceLocation - ) {} +- if ( +- baseContractFunction.type !== ContractFunctionType.GETTER && +- baseContractFunction.type !== ContractFunctionType.FUNCTION +- ) { +- continue; +- } +- +- if ( +- baseContractFunction.visibility !== ContractFunctionVisibility.PUBLIC && +- baseContractFunction.visibility !== ContractFunctionVisibility.EXTERNAL +- ) { +- continue; +- } +- +- const selectorHex = bufferToHex(baseContractFunction.selector!); +- if (!this._selectorHexToFunction.has(selectorHex)) { +- this._selectorHexToFunction.set(selectorHex, baseContractFunction); +- } +- } +- } +- +- public getFunctionFromSelector( +- selector: Uint8Array +- ): ContractFunction | undefined { +- return this._selectorHexToFunction.get(bufferToHex(selector)); +- } +- +- /** +- * We compute selectors manually, which is particularly hard. We do this +- * because we need to map selectors to AST nodes, and it seems easier to start +- * from the AST node. This is surprisingly super hard: things like inherited +- * enums, structs and ABIv2 complicate it. +- * +- * As we know that that can fail, we run a heuristic that tries to correct +- * incorrect selectors. What it does is checking the `evm.methodIdentifiers` +- * compiler output, and detect missing selectors. Then we take those and +- * find contract functions with the same name. If there are multiple of those +- * we can't do anything. If there is a single one, it must have an incorrect +- * selector, so we update it with the `evm.methodIdentifiers`'s value. +- */ +- public correctSelector(functionName: string, selector: Buffer): boolean { +- const functions = Array.from(this._selectorHexToFunction.values()).filter( +- (cf) => cf.name === functionName +- ); +- +- if (functions.length !== 1) { +- return false; +- } +- +- const functionToCorrect = functions[0]; +- +- if (functionToCorrect.selector !== undefined) { +- this._selectorHexToFunction.delete( +- bufferToHex(functionToCorrect.selector) +- ); +- } +- +- functionToCorrect.selector = selector; +- this._selectorHexToFunction.set(bufferToHex(selector), functionToCorrect); +- return true; +- } +-} +- +-export class ContractFunction { +- constructor( +- public readonly name: string, +- public readonly type: ContractFunctionType, +- public readonly location: SourceLocation, +- public readonly contract?: Contract, +- public readonly visibility?: ContractFunctionVisibility, +- public readonly isPayable?: boolean, +- public selector?: Uint8Array, +- public readonly paramTypes?: any[] +- ) { +- if (contract !== undefined && !contract.location.contains(location)) { +- throw new Error("Incompatible contract and function location"); +- } +- } +- +- public isValidCalldata(calldata: Uint8Array): boolean { +- if (this.paramTypes === undefined) { +- // if we don't know the param types, we just assume that the call is valid +- return true; +- } +- +- return AbiHelpers.isValidCalldata(this.paramTypes, calldata); +- } +-} +- +-export class CustomError { +- /** +- * Return a CustomError from the given ABI information: the name +- * of the error and its inputs. Returns undefined if it can't build +- * the CustomError. +- */ +- public static fromABI(name: string, inputs: any[]): CustomError | undefined { +- const selector = AbiHelpers.computeSelector(name, inputs); +- +- if (selector !== undefined) { +- return new CustomError(selector, name, inputs); +- } +- } +- +- private constructor( +- public readonly selector: Uint8Array, +- public readonly name: string, +- public readonly paramTypes: any[] +- ) {} +-} +- +-export class Instruction { +- constructor( +- public readonly pc: number, +- public readonly opcode: Opcode, +- public readonly jumpType: JumpType, +- public readonly pushData?: Buffer, +- public readonly location?: SourceLocation +- ) {} - - /** - * Checks equality with another Instruction. @@ -528,22 +3439,43 @@ index 534ae112a663f90fce98e68efca01db3d391c96f..86b3d57c32a5081b93860e27c5894005 - - return true; - } - } - - interface ImmutableReference { -@@ -365,7 +314,7 @@ export class Bytecode { - public readonly contract: Contract, - public readonly isDeployment: boolean, - public readonly normalizedCode: Buffer, +-} +- +-interface ImmutableReference { +- start: number; +- length: number; +-} +- +-export class Bytecode { +- private readonly _pcToInstruction: Map = new Map(); +- +- constructor( +- public readonly contract: Contract, +- public readonly isDeployment: boolean, +- public readonly normalizedCode: Buffer, - public readonly instructions: Instruction[], -+ instructions: Instruction[], - public readonly libraryAddressPositions: number[], - public readonly immutableReferences: ImmutableReference[], - public readonly compilerVersion: string -@@ -388,22 +337,4 @@ export class Bytecode { - public hasInstruction(pc: number): boolean { - return this._pcToInstruction.has(pc); - } +- public readonly libraryAddressPositions: number[], +- public readonly immutableReferences: ImmutableReference[], +- public readonly compilerVersion: string +- ) { +- for (const inst of instructions) { +- this._pcToInstruction.set(inst.pc, inst); +- } +- } +- +- public getInstruction(pc: number): Instruction { +- const inst = this._pcToInstruction.get(pc); +- +- if (inst === undefined) { +- throw new Error(`There's no instruction at pc ${pc}`); +- } +- +- return inst; +- } +- +- public hasInstruction(pc: number): boolean { +- return this._pcToInstruction.has(pc); +- } - - /** - * Checks equality with another Bytecode. @@ -562,7 +3494,398 @@ index 534ae112a663f90fce98e68efca01db3d391c96f..86b3d57c32a5081b93860e27c5894005 - - return true; - } - } +-} ++import { ++ ContractFunction, ++ SourceLocation, ++ SourceFile, ++ ContractFunctionType, ++ ContractFunctionVisibility, ++ CustomError, ++ Instruction, ++ JumpType, ++ jumpTypeToString, ++ Bytecode, ++ ContractType, ++ Contract, ++} from "@nomicfoundation/edr"; ++ ++export { ++ ContractFunction, ++ SourceLocation, ++ SourceFile, ++ ContractFunctionType, ++ ContractFunctionVisibility, ++ CustomError, ++ Instruction, ++ JumpType, ++ jumpTypeToString, ++ Bytecode, ++ ContractType, ++ Contract, ++}; +diff --git a/src/internal/hardhat-network/stack-traces/opcodes.ts b/src/internal/hardhat-network/stack-traces/opcodes.ts +index e0602c17fb8c0c48b740d5e6bb8925cfaba67740..52a10924b4fdba9dea211c0ddeb1910e7cf46c02 100644 +--- a/src/internal/hardhat-network/stack-traces/opcodes.ts ++++ b/src/internal/hardhat-network/stack-traces/opcodes.ts +@@ -1,344 +1,10 @@ +-export enum Opcode { +- // Arithmetic operations +- STOP = 0x00, +- ADD = 0x01, +- MUL = 0x02, +- SUB = 0x03, +- DIV = 0x04, +- SDIV = 0x05, +- MOD = 0x06, +- SMOD = 0x07, +- ADDMOD = 0x08, +- MULMOD = 0x09, +- EXP = 0x0a, +- SIGNEXTEND = 0x0b, +- +- // Unallocated +- UNRECOGNIZED_0C = 0x0c, +- UNRECOGNIZED_0D = 0x0d, +- UNRECOGNIZED_0E = 0x0e, +- UNRECOGNIZED_0F = 0x0f, +- +- // Comparison and bitwise operations +- LT = 0x10, +- GT = 0x11, +- SLT = 0x12, +- SGT = 0x13, +- EQ = 0x14, +- ISZERO = 0x15, +- AND = 0x16, +- OR = 0x17, +- XOR = 0x18, +- NOT = 0x19, +- BYTE = 0x1a, +- SHL = 0x1b, +- SHR = 0x1c, +- SAR = 0x1d, +- +- // Unallocated +- UNRECOGNIZED_1E = 0x1e, +- UNRECOGNIZED_1F = 0x1f, +- +- // Cryptographic operations +- SHA3 = 0x20, +- +- // Unallocated +- UNRECOGNIZED_21 = 0x21, +- UNRECOGNIZED_22 = 0x22, +- UNRECOGNIZED_23 = 0x23, +- UNRECOGNIZED_24 = 0x24, +- UNRECOGNIZED_25 = 0x25, +- UNRECOGNIZED_26 = 0x26, +- UNRECOGNIZED_27 = 0x27, +- UNRECOGNIZED_28 = 0x28, +- UNRECOGNIZED_29 = 0x29, +- UNRECOGNIZED_2A = 0x2a, +- UNRECOGNIZED_2B = 0x2b, +- UNRECOGNIZED_2C = 0x2c, +- UNRECOGNIZED_2D = 0x2d, +- UNRECOGNIZED_2E = 0x2e, +- UNRECOGNIZED_2F = 0x2f, +- +- // Message info operations +- ADDRESS = 0x30, +- BALANCE = 0x31, +- ORIGIN = 0x32, +- CALLER = 0x33, +- CALLVALUE = 0x34, +- CALLDATALOAD = 0x35, +- CALLDATASIZE = 0x36, +- CALLDATACOPY = 0x37, +- CODESIZE = 0x38, +- CODECOPY = 0x39, +- GASPRICE = 0x3a, +- EXTCODESIZE = 0x3b, +- EXTCODECOPY = 0x3c, +- RETURNDATASIZE = 0x3d, +- RETURNDATACOPY = 0x3e, +- EXTCODEHASH = 0x3f, +- +- // Block info operations +- BLOCKHASH = 0x40, +- COINBASE = 0x41, +- TIMESTAMP = 0x42, +- NUMBER = 0x43, +- DIFFICULTY = 0x44, +- GASLIMIT = 0x45, +- +- // Istanbul opcodes +- CHAINID = 0x46, +- SELFBALANCE = 0x47, +- +- // London opcodes +- BASEFEE = 0x48, +- +- // Unallocated +- UNRECOGNIZED_49 = 0x49, +- UNRECOGNIZED_4A = 0x4a, +- UNRECOGNIZED_4B = 0x4b, +- UNRECOGNIZED_4C = 0x4c, +- UNRECOGNIZED_4D = 0x4d, +- UNRECOGNIZED_4E = 0x4e, +- UNRECOGNIZED_4F = 0x4f, +- +- // Storage, memory, and other operations +- POP = 0x50, +- MLOAD = 0x51, +- MSTORE = 0x52, +- MSTORE8 = 0x53, +- SLOAD = 0x54, +- SSTORE = 0x55, +- JUMP = 0x56, +- JUMPI = 0x57, +- PC = 0x58, +- MSIZE = 0x59, +- GAS = 0x5a, +- JUMPDEST = 0x5b, +- +- // Uncallocated +- UNRECOGNIZED_5C = 0x5c, +- UNRECOGNIZED_5D = 0x5d, +- UNRECOGNIZED_5E = 0x5e, +- UNRECOGNIZED_5F = 0x5f, +- +- // Push operations +- PUSH1 = 0x60, +- PUSH2 = 0x61, +- PUSH3 = 0x62, +- PUSH4 = 0x63, +- PUSH5 = 0x64, +- PUSH6 = 0x65, +- PUSH7 = 0x66, +- PUSH8 = 0x67, +- PUSH9 = 0x68, +- PUSH10 = 0x69, +- PUSH11 = 0x6a, +- PUSH12 = 0x6b, +- PUSH13 = 0x6c, +- PUSH14 = 0x6d, +- PUSH15 = 0x6e, +- PUSH16 = 0x6f, +- PUSH17 = 0x70, +- PUSH18 = 0x71, +- PUSH19 = 0x72, +- PUSH20 = 0x73, +- PUSH21 = 0x74, +- PUSH22 = 0x75, +- PUSH23 = 0x76, +- PUSH24 = 0x77, +- PUSH25 = 0x78, +- PUSH26 = 0x79, +- PUSH27 = 0x7a, +- PUSH28 = 0x7b, +- PUSH29 = 0x7c, +- PUSH30 = 0x7d, +- PUSH31 = 0x7e, +- PUSH32 = 0x7f, +- +- // Dup operations +- DUP1 = 0x80, +- DUP2 = 0x81, +- DUP3 = 0x82, +- DUP4 = 0x83, +- DUP5 = 0x84, +- DUP6 = 0x85, +- DUP7 = 0x86, +- DUP8 = 0x87, +- DUP9 = 0x88, +- DUP10 = 0x89, +- DUP11 = 0x8a, +- DUP12 = 0x8b, +- DUP13 = 0x8c, +- DUP14 = 0x8d, +- DUP15 = 0x8e, +- DUP16 = 0x8f, +- +- // Swap operations +- SWAP1 = 0x90, +- SWAP2 = 0x91, +- SWAP3 = 0x92, +- SWAP4 = 0x93, +- SWAP5 = 0x94, +- SWAP6 = 0x95, +- SWAP7 = 0x96, +- SWAP8 = 0x97, +- SWAP9 = 0x98, +- SWAP10 = 0x99, +- SWAP11 = 0x9a, +- SWAP12 = 0x9b, +- SWAP13 = 0x9c, +- SWAP14 = 0x9d, +- SWAP15 = 0x9e, +- SWAP16 = 0x9f, +- +- // Log operations +- LOG0 = 0xa0, +- LOG1 = 0xa1, +- LOG2 = 0xa2, +- LOG3 = 0xa3, +- LOG4 = 0xa4, +- +- // Unallocated +- UNRECOGNIZED_A5 = 0xa5, +- UNRECOGNIZED_A6 = 0xa6, +- UNRECOGNIZED_A7 = 0xa7, +- UNRECOGNIZED_A8 = 0xa8, +- UNRECOGNIZED_A9 = 0xa9, +- UNRECOGNIZED_AA = 0xaa, +- UNRECOGNIZED_AB = 0xab, +- UNRECOGNIZED_AC = 0xac, +- UNRECOGNIZED_AD = 0xad, +- UNRECOGNIZED_AE = 0xae, +- UNRECOGNIZED_AF = 0xaf, +- +- UNRECOGNIZED_B0 = 0xb0, +- UNRECOGNIZED_B1 = 0xb1, +- UNRECOGNIZED_B2 = 0xb2, +- UNRECOGNIZED_B3 = 0xb3, +- UNRECOGNIZED_B4 = 0xb4, +- UNRECOGNIZED_B5 = 0xb5, +- UNRECOGNIZED_B6 = 0xb6, +- UNRECOGNIZED_B7 = 0xb7, +- UNRECOGNIZED_B8 = 0xb8, +- UNRECOGNIZED_B9 = 0xb9, +- UNRECOGNIZED_BA = 0xba, +- UNRECOGNIZED_BB = 0xbb, +- UNRECOGNIZED_BC = 0xbc, +- UNRECOGNIZED_BD = 0xbd, +- UNRECOGNIZED_BE = 0xbe, +- UNRECOGNIZED_BF = 0xbf, +- +- UNRECOGNIZED_C0 = 0xc0, +- UNRECOGNIZED_C1 = 0xc1, +- UNRECOGNIZED_C2 = 0xc2, +- UNRECOGNIZED_C3 = 0xc3, +- UNRECOGNIZED_C4 = 0xc4, +- UNRECOGNIZED_C5 = 0xc5, +- UNRECOGNIZED_C6 = 0xc6, +- UNRECOGNIZED_C7 = 0xc7, +- UNRECOGNIZED_C8 = 0xc8, +- UNRECOGNIZED_C9 = 0xc9, +- UNRECOGNIZED_CA = 0xca, +- UNRECOGNIZED_CB = 0xcb, +- UNRECOGNIZED_CC = 0xcc, +- UNRECOGNIZED_CD = 0xcd, +- UNRECOGNIZED_CE = 0xce, +- UNRECOGNIZED_CF = 0xcf, +- +- UNRECOGNIZED_D0 = 0xd0, +- UNRECOGNIZED_D1 = 0xd1, +- UNRECOGNIZED_D2 = 0xd2, +- UNRECOGNIZED_D3 = 0xd3, +- UNRECOGNIZED_D4 = 0xd4, +- UNRECOGNIZED_D5 = 0xd5, +- UNRECOGNIZED_D6 = 0xd6, +- UNRECOGNIZED_D7 = 0xd7, +- UNRECOGNIZED_D8 = 0xd8, +- UNRECOGNIZED_D9 = 0xd9, +- UNRECOGNIZED_DA = 0xda, +- UNRECOGNIZED_DB = 0xdb, +- UNRECOGNIZED_DC = 0xdc, +- UNRECOGNIZED_DD = 0xdd, +- UNRECOGNIZED_DE = 0xde, +- UNRECOGNIZED_DF = 0xdf, +- +- UNRECOGNIZED_E0 = 0xe0, +- UNRECOGNIZED_E1 = 0xe1, +- UNRECOGNIZED_E2 = 0xe2, +- UNRECOGNIZED_E3 = 0xe3, +- UNRECOGNIZED_E4 = 0xe4, +- UNRECOGNIZED_E5 = 0xe5, +- UNRECOGNIZED_E6 = 0xe6, +- UNRECOGNIZED_E7 = 0xe7, +- UNRECOGNIZED_E8 = 0xe8, +- UNRECOGNIZED_E9 = 0xe9, +- UNRECOGNIZED_EA = 0xea, +- UNRECOGNIZED_EB = 0xeb, +- UNRECOGNIZED_EC = 0xec, +- UNRECOGNIZED_ED = 0xed, +- UNRECOGNIZED_EE = 0xee, +- UNRECOGNIZED_EF = 0xef, +- +- // Call operations +- CREATE = 0xf0, +- CALL = 0xf1, +- CALLCODE = 0xf2, +- RETURN = 0xf3, +- DELEGATECALL = 0xf4, +- CREATE2 = 0xf5, +- +- // Unallocated +- UNRECOGNIZED_F6 = 0xf6, +- UNRECOGNIZED_F7 = 0xf7, +- UNRECOGNIZED_F8 = 0xf8, +- UNRECOGNIZED_F9 = 0xf9, +- +- // Other operations +- STATICCALL = 0xfa, +- +- // Unallocated +- UNRECOGNIZED_FB = 0xfb, +- UNRECOGNIZED_FC = 0xfc, +- +- // Other operations +- REVERT = 0xfd, +- INVALID = 0xfe, +- SELFDESTRUCT = 0xff, +-} +- +-export function opcodeName(opcode: number): string { +- return Opcode[opcode] ?? ``; +-} +- +-export function isPush(opcode: Opcode) { +- return opcode >= Opcode.PUSH1 && opcode <= Opcode.PUSH32; +-} +- +-export function isJump(opcode: Opcode) { +- return opcode === Opcode.JUMP || opcode === Opcode.JUMPI; +-} +- +-export function getPushLength(opcode: Opcode) { +- return opcode - Opcode.PUSH1 + 1; +-} +- +-export function getOpcodeLength(opcode: Opcode) { +- if (!isPush(opcode)) { +- return 1; +- } +- +- return 1 + getPushLength(opcode); +-} +- +-export function isCall(opcode: Opcode) { +- return ( +- opcode === Opcode.CALL || +- opcode === Opcode.CALLCODE || +- opcode === Opcode.DELEGATECALL || +- opcode === Opcode.STATICCALL +- ); +-} +- +-export function isCreate(opcode: Opcode) { +- return opcode === Opcode.CREATE || opcode === Opcode.CREATE2; +-} ++export { ++ Opcode, ++ isPush, ++ isJump, ++ getPushLength, ++ getOpcodeLength, ++ isCall, ++ isCreate, ++ opcodeToString, ++} from "@nomicfoundation/edr"; +diff --git a/src/internal/hardhat-network/stack-traces/source-maps.ts b/src/internal/hardhat-network/stack-traces/source-maps.ts +deleted file mode 100644 +index 8ff03b3c7337cb0da035004844c850bf89745669..0000000000000000000000000000000000000000 diff --git a/src/types/config.ts b/src/types/config.ts index 3f53d4b3a181af665a91ff6d562edd090ad7a5e7..027a3a5f064654026921f939e6550f6ef1db173f 100644 --- a/src/types/config.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 909440cae..e9bf2cef9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: patchedDependencies: hardhat@2.22.6: - hash: rbntosn6fipxpoujsfmxvxmlre + hash: kpm5clguhc4skavtwsk2jhaefy path: patches/hardhat@2.22.6.patch importers: @@ -66,7 +66,7 @@ importers: version: 4.4.1 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) lodash: specifier: ^4.17.11 version: 4.17.21 @@ -186,7 +186,7 @@ importers: version: 7.0.1 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) mocha: specifier: ^10.0.0 version: 10.3.0 @@ -216,10 +216,10 @@ importers: devDependencies: '@defi-wonderland/smock': specifier: ^2.4.0 - version: 2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + version: 2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) '@nomiclabs/hardhat-ethers': specifier: ^2.2.3 - version: 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + version: 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) chai: specifier: ^4.3.6 version: 4.4.1 @@ -228,7 +228,7 @@ importers: version: 5.7.2 hardhat: specifier: 2.22.6 - version: 2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + version: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) mocha: specifier: ^10.0.0 version: 10.3.0 @@ -3082,16 +3082,16 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@defi-wonderland/smock@2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': + '@defi-wonderland/smock@2.4.0(@ethersproject/abi@5.7.0)(@ethersproject/abstract-provider@5.7.0)(@ethersproject/abstract-signer@5.7.0)(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)))(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 '@nomicfoundation/ethereumjs-util': 9.0.4 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4)) diff: 5.0.0 ethers: 5.7.2 - hardhat: 2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + hardhat: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) lodash.isequal: 4.5.0 lodash.isequalwith: 4.4.0 rxjs: 7.8.1 @@ -3602,10 +3602,10 @@ snapshots: '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(typescript@5.0.4))(typescript@5.0.4))': dependencies: ethers: 5.7.2 - hardhat: 2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) + hardhat: 2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4) '@scure/base@1.1.5': {} @@ -4872,7 +4872,7 @@ snapshots: hard-rejection@2.1.0: {} - hardhat@2.22.6(patch_hash=rbntosn6fipxpoujsfmxvxmlre)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4): + hardhat@2.22.6(patch_hash=kpm5clguhc4skavtwsk2jhaefy)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.0.4))(typescript@5.0.4): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1