Skip to content

Commit 908bc32

Browse files
committed
feat: register new dispute manager in controller overriding old one
Signed-off-by: Tomás Migone <[email protected]>
1 parent 315454d commit 908bc32

File tree

9 files changed

+34
-1
lines changed

9 files changed

+34
-1
lines changed

packages/horizon/ignition/configs/migrate.arbitrumSepolia.json5

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@
3030
"horizonStakingImplementationAddress": "0x2AF6F51e119A79497C3A3FFf012B5889da489764",
3131
"curationImplementationAddress": "0xbC8F4355f346e47eef8A0DBFF4a58616ACf7DaCA",
3232
"rewardsManagerImplementationAddress": "0x856843F6409a8b3A0d4aaE67313037FED02bBBFf",
33-
33+
"disputeManagerAddress": "0x96e1b86b2739e8A3d59F40F2532caDF9cE8Da088",
34+
35+
// Must be set for step 5 of the migration
3436
// Global parameters
3537
"maxThawingPeriod": 2419200
3638
},

packages/horizon/ignition/configs/migrate.default.json5

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"horizonStakingImplementationAddress": "",
3131
"curationImplementationAddress": "",
3232
"rewardsManagerImplementationAddress": "",
33+
"disputeManagerAddress": "",
3334

3435
// Global parameters
3536
"maxThawingPeriod": 2419200

packages/horizon/ignition/configs/migrate.integration.json5

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"horizonStakingImplementationAddress": "",
3131
"curationImplementationAddress": "",
3232
"rewardsManagerImplementationAddress": "",
33+
"disputeManagerAddress": "",
3334

3435
// Global parameters
3536
"maxThawingPeriod": 2419200

packages/horizon/ignition/configs/migrate.localNetwork.json5

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"horizonStakingImplementationAddress": "",
3131
"curationImplementationAddress": "",
3232
"rewardsManagerImplementationAddress": "",
33+
"disputeManagerAddress": "",
3334

3435
// Global parameters
3536
"maxThawingPeriod": 2419200

packages/horizon/ignition/configs/protocol.default.json5

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
// Placeholder address for a standalone Horizon deployment, see README.md for more details
88
"subgraphServiceAddress": "0x0000000000000000000000000000000000000000",
9+
"disputeManagerAddress": "0x0000000000000000000000000000000000000001",
910

1011
// Global parameters
1112
"maxThawingPeriod": 2419200

packages/horizon/ignition/configs/protocol.localNetwork.json5

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
// Placeholder address for a standalone Horizon deployment, see README.md for more details
88
"subgraphServiceAddress": "0x0000000000000000000000000000000000000000",
9+
"disputeManagerAddress": "0x0000000000000000000000000000000000000001",
910

1011
// Global parameters
1112
"maxThawingPeriod": 2419200

packages/horizon/ignition/modules/migrate/migrate-4.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import ControllerArtifact from '@graphprotocol/contracts/artifacts/contracts/governance/Controller.sol/Controller.json'
12
import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'
3+
import { ethers } from 'ethers'
24

35
import { MigrateHorizonStakingGovernorModule } from '../core/HorizonStaking'
46
import { MigrateCurationGovernorModule } from '../periphery/Curation'
@@ -9,5 +11,13 @@ export default buildModule('GraphHorizon_Migrate_4', (m) => {
911
m.useModule(MigrateRewardsManagerGovernorModule)
1012
m.useModule(MigrateHorizonStakingGovernorModule)
1113

14+
// Patch controller to override old dispute manager address
15+
const disputeManagerAddress = m.getParameter('disputeManagerAddress')
16+
const controllerAddress = m.getParameter('controllerAddress')
17+
const Controller = m.contractAt('Controller', ControllerArtifact, controllerAddress)
18+
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('DisputeManager')), disputeManagerAddress], {
19+
id: 'setContractProxy_DisputeManager',
20+
})
21+
1222
return {}
1323
})

packages/horizon/ignition/modules/periphery/periphery.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export default buildModule('GraphHorizon_Periphery', (m) => {
2121
const { L2GraphTokenGateway, L2GraphTokenGatewayImplementation } = m.useModule(GraphTokenGatewayModule)
2222
const { L2GraphToken, L2GraphTokenImplementation } = m.useModule(GraphTokenModule)
2323

24+
const disputeManagerAddress = m.getParameter('disputeManagerAddress')
25+
2426
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('EpochManager')), EpochManager], {
2527
id: 'setContractProxy_EpochManager',
2628
})
@@ -45,6 +47,9 @@ export default buildModule('GraphHorizon_Periphery', (m) => {
4547
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('GNS')), L2GNS], {
4648
id: 'setContractProxy_L2GNS',
4749
})
50+
m.call(Controller, 'setContractProxy', [ethers.keccak256(ethers.toUtf8Bytes('DisputeManager')), disputeManagerAddress], {
51+
id: 'setContractProxy_DisputeManager',
52+
})
4853

4954
return {
5055
Controller,

packages/horizon/tasks/deploy.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ function _patchStepConfig<ChainId extends number, ContractName extends string, H
163163
return subgraphServiceAddressBook.getEntry('SubgraphService').address
164164
}
165165

166+
// Get the dispute manager address
167+
// Dispute manager address book might exist if we are running horizon + subgraph service
168+
// or it might not exist if we are running horizon standalone
169+
function getDisputeManagerAddress() {
170+
if (subgraphServiceAddressBook === undefined || !subgraphServiceAddressBook.entryExists('DisputeManager') || standalone) {
171+
return ZERO_ADDRESS
172+
}
173+
return subgraphServiceAddressBook.getEntry('DisputeManager').address ?? ZERO_ADDRESS
174+
}
175+
166176
switch (step) {
167177
case 2:
168178
const GraphPayments = horizonAddressBook.getEntry('GraphPayments')
@@ -188,6 +198,7 @@ function _patchStepConfig<ChainId extends number, ContractName extends string, H
188198
patchedConfig = patchConfig(patchedConfig, {
189199
$global: {
190200
subgraphServiceAddress: getSubgraphServiceAddress(),
201+
disputeManagerAddress: getDisputeManagerAddress(),
191202
horizonStakingImplementationAddress: HorizonStaking.implementation ?? ZERO_ADDRESS,
192203
curationImplementationAddress: L2Curation.implementation ?? ZERO_ADDRESS,
193204
rewardsManagerImplementationAddress: RewardsManager.implementation ?? ZERO_ADDRESS,

0 commit comments

Comments
 (0)