diff --git a/.gitea/workflows/smart-contract-tests.yml b/.gitea/workflows/smart-contract-tests.yml index f424e8cc..b45afbf8 100644 --- a/.gitea/workflows/smart-contract-tests.yml +++ b/.gitea/workflows/smart-contract-tests.yml @@ -134,8 +134,8 @@ jobs: echo "=== Running Foundry Tests ===" - # Install OpenZeppelin dependencies - forge install OpenZeppelin/openzeppelin-contracts + # Install OpenZeppelin dependencies (v4.x for compatibility with existing imports) + forge install OpenZeppelin/openzeppelin-contracts@v4.9.6 echo "✅ OpenZeppelin dependencies installed" # Build contracts diff --git a/contracts/test/Phase4ModularContracts.test.js b/contracts/test/Phase4ModularContracts.test.js index 63018b33..05299e02 100644 --- a/contracts/test/Phase4ModularContracts.test.js +++ b/contracts/test/Phase4ModularContracts.test.js @@ -83,6 +83,20 @@ describe("Phase 4 Modular Smart Contracts", function () { ); // PerformanceAggregator registers itself during initialize(), so don't register it here + // Register mock contracts that PerformanceAggregator.initialize() requires + await contractRegistry.registerContract( + ethers.keccak256(ethers.toUtf8Bytes("PerformanceVerifier")), + user1.address + ); + await contractRegistry.registerContract( + ethers.keccak256(ethers.toUtf8Bytes("AgentBounty")), + user2.address + ); + await contractRegistry.registerContract( + ethers.keccak256(ethers.toUtf8Bytes("AgentStaking")), + deployer.address + ); + // Initialize all contracts (after registration) await treasuryManager.initialize(await contractRegistry.getAddress()); await rewardDistributor.initialize(await contractRegistry.getAddress());