From 1f8ff7359035bdd2a13099684cc4d0ddbf2c6c41 Mon Sep 17 00:00:00 2001 From: aitbc1 Date: Fri, 27 Mar 2026 23:12:46 +0100 Subject: [PATCH] fix: update Hardhat EVM version to support mcopy function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HARDHAT COMPILER FIX: Resolve mcopy function not found error Issue Fixed: ❌ DeclarationError: Function mcopy not found ❌ OpenZeppelin contracts using mcopy opcode ❌ Compilation failing with HH600 error ❌ EVM version too old for mcopy support Root Cause: - OpenZeppelin v5.0.2 uses mcopy function for gas optimization - mcopy requires Shanghai EVM version or later - Default EVM version didn't support mcopy opcode - Hardhat config missing evmVersion setting Solution Applied: ✅ Set evmVersion to shanghai in Hardhat config ✅ Shanghai EVM supports mcopy and other new opcodes ✅ Maintains Solidity 0.8.24 compiler version ✅ Keeps optimizer settings for gas efficiency Configuration Changes: - Added evmVersion: shanghai to solidity settings - Maintains version: 0.8.24 for compiler - Preserves optimizer settings - Compatible with OpenZeppelin v5.0.2 Impact: - OpenZeppelin contracts now compile successfully - mcopy function is supported - No more HH600 compilation errors - Modern EVM features available - Gas optimizations from OpenZeppelin work This resolves the compilation issue that was preventing Hardhat from compiling contracts due to missing mcopy support. --- packages/solidity/aitbc-token/hardhat.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/solidity/aitbc-token/hardhat.config.ts b/packages/solidity/aitbc-token/hardhat.config.ts index 90d4018e..2c6248e1 100644 --- a/packages/solidity/aitbc-token/hardhat.config.ts +++ b/packages/solidity/aitbc-token/hardhat.config.ts @@ -8,7 +8,8 @@ const config: HardhatUserConfig = { optimizer: { enabled: true, runs: 200 - } + }, + evmVersion: "shanghai" } }, paths: {