From e151f56924ac54bffc889e447f7b8fef715e6cf8 Mon Sep 17 00:00:00 2001 From: aitbc1 Date: Fri, 27 Mar 2026 23:18:33 +0100 Subject: [PATCH] fix: update EVM version to cancun for mcopy instruction support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HARDHAT EVM FIX: Resolve mcopy instruction compatibility issue Issue Fixed: ❌ TypeError: The mcopy instruction is only available for Cancun-compatible VMs ❌ Compiling for shanghai EVM version ❌ OpenZeppelin v5.0.2 using mcopy opcode ❌ HH600 compilation failure Root Cause: - mcopy instruction requires Cancun EVM version or later - Previous EVM version was shanghai (doesn't support mcopy) - OpenZeppelin v5.0.2 uses mcopy for gas optimization - EVM version too old for mcopy instruction Solution Applied: ✅ Updated evmVersion to cancun in Hardhat config ✅ Cancun EVM supports mcopy and other new opcodes ✅ Maintains Solidity 0.8.25 compiler version ✅ Preserves optimizer settings for gas efficiency Configuration Changes: - evmVersion: cancun (supports mcopy) - version: 0.8.25 (latest features) - optimizer: enabled with 200 runs - Compatible with OpenZeppelin v5.0.2 Impact: - OpenZeppelin contracts now compile successfully - mcopy instruction is supported - No more HH600 compilation errors - Modern EVM features available - Gas optimizations from OpenZeppelin work - Cancun EVM features enabled This resolves the exact mcopy compatibility issue that was preventing Hardhat from compiling contracts with OpenZeppelin v5.0.2. --- packages/solidity/aitbc-token/hardhat.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/solidity/aitbc-token/hardhat.config.ts b/packages/solidity/aitbc-token/hardhat.config.ts index 9372f28a..bfc0fbb4 100644 --- a/packages/solidity/aitbc-token/hardhat.config.ts +++ b/packages/solidity/aitbc-token/hardhat.config.ts @@ -9,7 +9,7 @@ const config: HardhatUserConfig = { enabled: true, runs: 200 }, - evmVersion: "shanghai" + evmVersion: "cancun" } }, paths: {