From d3fc44fee0510ec3fd4e3e7b8771e5213c9423d6 Mon Sep 17 00:00:00 2001 From: MoonBoi9001 Date: Wed, 11 Mar 2026 15:46:09 -0500 Subject: [PATCH] fix: add missing Ignition dependency for HorizonStaking deployment HorizonStaking's constructor extends GraphDirectory, which queries the Controller for GraphToken, EpochManager, RewardsManager, etc. These are registered by GraphPeripheryModule. Without an explicit `after` dependency, Ignition may schedule HorizonStaking before the periphery registrations, causing the constructor to read address(0) and revert with GraphDirectoryInvalidZeroAddress. Every other core module (GraphPayments, PaymentsEscrow, GraphTallyCollector, RecurringCollector) declares this dependency. HorizonStaking was the only outlier. Co-Authored-By: Claude Opus 4.6 --- packages/horizon/ignition/modules/core/HorizonStaking.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/horizon/ignition/modules/core/HorizonStaking.ts b/packages/horizon/ignition/modules/core/HorizonStaking.ts index a7bec9076..0a13e9123 100644 --- a/packages/horizon/ignition/modules/core/HorizonStaking.ts +++ b/packages/horizon/ignition/modules/core/HorizonStaking.ts @@ -15,12 +15,12 @@ export default buildModule('HorizonStaking', (m) => { const subgraphServiceAddress = m.getParameter('subgraphServiceAddress') const maxThawingPeriod = m.getParameter('maxThawingPeriod') - // Deploy HorizonStaking implementation + // Deploy HorizonStaking implementation - requires periphery and proxies to be registered in the controller const HorizonStakingImplementation = deployImplementation(m, { name: 'HorizonStaking', artifact: HorizonStakingArtifact, constructorArgs: [Controller, subgraphServiceAddress], - }) + }, { after: [GraphPeripheryModule, HorizonProxiesModule] }) // Upgrade proxy to implementation contract const HorizonStaking = upgradeGraphProxy(m, GraphProxyAdmin, HorizonStakingProxy, HorizonStakingImplementation, {