Skip to content

Commit cafa759

Browse files
committed
feat(deploy): reo and dips scripts 2,3,4
Signed-off-by: Tomás Migone <tomas@edgeandnode.com>
1 parent 3f49c9b commit cafa759

7 files changed

Lines changed: 104 additions & 25 deletions

File tree

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@
6666
},
6767
"patchedDependencies": {
6868
"typechain@8.3.2": "patches/typechain@8.3.2.patch",
69-
"rocketh@0.17.13": "patches/rocketh@0.17.13.patch"
69+
"rocketh@0.17.13": "patches/rocketh@0.17.13.patch",
70+
"@rocketh/read-execute@0.17.8": "patches/@rocketh__read-execute@0.17.8.patch"
7071
}
7172
},
7273
"lint-staged": {

packages/deployment/deploy/gip/0088/upgrade/04_upgrade.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,22 @@ const func: DeployScriptModule = async (env) => {
8383

8484
const settings = await getResolvedSettingsForEnv(env)
8585

86+
// RM-dependent config (setDefaultReclaimAddress / setRevertOnIneligible) can only
87+
// run once RM is on its new implementation. If the RM upgrade is part of THIS batch,
88+
// it executes (ordered before these config TXs) within the same atomic governance
89+
// execution, so include them in the same bundle rather than deferring to a second
90+
// governance round.
91+
const rmUpgradeInBatch = gathered.sourceNames.some((n) => n.includes(Contracts.horizon.RewardsManager.name))
92+
8693
env.showMessage('\nOutstanding configuration:')
87-
const existingCount = await collectExistingContractConfig(env, builder, client, pauseGuardian, settings)
94+
const existingCount = await collectExistingContractConfig(
95+
env,
96+
builder,
97+
client,
98+
pauseGuardian,
99+
settings,
100+
rmUpgradeInBatch,
101+
)
88102
const newCount = await collectDeferredNewContractConfig(env, builder, client, targetChainId, governor, pauseGuardian)
89103

90104
const total = gathered.txCount + existingCount + newCount
@@ -153,15 +167,16 @@ function gatherProxyUpgrades(txDir: string, builder: TxBuilder) {
153167
* horizon-Ignition infrastructure; the dynamic role check is the source of truth):
154168
*
155169
* - RC.setPauseGuardian
156-
* - RM.setDefaultReclaimAddress (only when RM has been upgraded)
157-
* - RM.setRevertOnIneligible (driven by config; only when RM has been upgraded)
170+
* - RM.setDefaultReclaimAddress (when RM is upgraded, or its upgrade is in this batch)
171+
* - RM.setRevertOnIneligible (driven by config; same RM-upgrade gating)
158172
*/
159173
async function collectExistingContractConfig(
160174
env: Environment,
161175
builder: TxBuilder,
162176
client: PublicClient,
163177
pauseGuardian: string,
164178
settings: ResolvedSettings,
179+
rmUpgradeInBatch: boolean,
165180
): Promise<number> {
166181
let added = 0
167182

@@ -194,7 +209,7 @@ async function collectExistingContractConfig(
194209
const rm = env.getOrNull(Contracts.horizon.RewardsManager.name)
195210
if (reclaim && rm) {
196211
const reclaimRMCheck = await checkReclaimRMIntegration(client, rm.address, reclaim.address)
197-
if (!reclaimRMCheck.done && reclaimRMCheck.reason !== 'RM not upgraded') {
212+
if (!reclaimRMCheck.done && (reclaimRMCheck.reason !== 'RM not upgraded' || rmUpgradeInBatch)) {
198213
builder.addTx({
199214
to: rm.address,
200215
value: '0',
@@ -213,7 +228,7 @@ async function collectExistingContractConfig(
213228
if (rm) {
214229
const desiredRevert = settings.rewardsManager.revertOnIneligible
215230
const revertCheck = await checkRMRevertOnIneligible(client, rm.address, desiredRevert)
216-
if (!revertCheck.done && revertCheck.reason !== 'RM not upgraded') {
231+
if (!revertCheck.done && (revertCheck.reason !== 'RM not upgraded' || rmUpgradeInBatch)) {
217232
builder.addTx({
218233
to: rm.address,
219234
value: '0',

packages/horizon/addresses.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
"blockNumber": 486895397,
2424
"timestamp": "2026-07-23T13:59:04.000Z"
2525
}
26+
},
27+
"proxyDeployment": {
28+
"verified": "https://arbiscan.io/address/0xf6Fcc27aAf1fcD8B254498c9794451d82afC673E#code"
29+
},
30+
"implementationDeployment": {
31+
"verified": "https://arbiscan.io/address/0xc493e8EBedE3d1cC61632736108d943693DA11F7#code"
2632
}
2733
},
2834
"L2Curation": {
@@ -38,6 +44,12 @@
3844
"blockNumber": 486895413,
3945
"timestamp": "2026-07-23T13:59:08.000Z"
4046
}
47+
},
48+
"proxyDeployment": {
49+
"verified": "https://arbiscan.io/address/0x22d78fb4bc72e191C765807f8891B5e1785C8014#code"
50+
},
51+
"implementationDeployment": {
52+
"verified": "https://arbiscan.io/address/0xc4Ce508c8fda35C597CC78e3604261110fc4c957#code"
4153
}
4254
},
4355
"L2GNS": {
@@ -61,6 +73,12 @@
6173
"blockNumber": 486895215,
6274
"timestamp": "2026-07-23T13:58:19.000Z"
6375
}
76+
},
77+
"proxyDeployment": {
78+
"verified": "https://arbiscan.io/address/0x971B9d3d0Ae3ECa029CAB5eA1fB0F72c85e6a525#code"
79+
},
80+
"implementationDeployment": {
81+
"verified": "https://arbiscan.io/address/0xBcD7a231eAB1f4667AAbFdb482026f244bfBf101#code"
6482
}
6583
},
6684
"HorizonStaking": {
@@ -76,6 +94,9 @@
7694
"blockNumber": 486895253,
7795
"timestamp": "2026-07-23T13:58:28.000Z"
7896
}
97+
},
98+
"implementationDeployment": {
99+
"verified": "https://arbiscan.io/address/0xaA3359434B534dE9964d4e72bE2782b076a1Eb5A#code"
79100
}
80101
},
81102
"GraphTallyCollector": {
@@ -108,13 +129,15 @@
108129
"txHash": "0xe750de639d4c90579e593f18ec16764bd43dc27d101c8fdd559c2407cdc35851",
109130
"argsData": "0x00000000000000000000000069315eb3e779dad209fbd0c70fa838c96fae488e0000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c44cd88b76000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000012526563757272696e67436f6c6c6563746f7200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
110131
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
111-
"blockNumber": 486895281
132+
"blockNumber": 486895281,
133+
"verified": "https://arbiscan.io/address/0xff0dc7310fbfbcc2524dae230cd4f34727eb84ee#code"
112134
},
113135
"implementationDeployment": {
114136
"txHash": "0x4b70220b37e3dbe029e3a9161e9dd00a7afb271d8643080179fbb1a7fa49b20b",
115137
"argsData": "0x0000000000000000000000000a8491544221dd212964fbb96487467291b2c97e0000000000000000000000000000000000000000000000000000000000007080",
116138
"bytecodeHash": "0x47f042a65486346b451264af80bb4207b06252c1c5fda8689822662285f16437",
117-
"blockNumber": 486895274
139+
"blockNumber": 486895274,
140+
"verified": "https://arbiscan.io/address/0x69315eb3e779dad209fbd0c70fa838c96fae488e#code"
118141
}
119142
}
120143
},

packages/issuance/addresses.json

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{
22
"42161": {
3+
"NetworkOperator": {
4+
"address": "0xae656A0aa51cd465B7506F98F2e8FBb82aa79894"
5+
},
36
"IssuanceAllocator": {
47
"address": "0xb64f29b2d81140ffc3a135e319561a1bd03b1a7e",
58
"proxy": "transparent",
@@ -9,13 +12,15 @@
912
"txHash": "0x86f08681e64d43c5c82c1eebb70c40d6ea2494f7d61d39d26fd58afdb0807923",
1013
"argsData": "0x000000000000000000000000f47b3a62f815121eadddc135f5515b274e2feff20000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
1114
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
12-
"blockNumber": 486895439
15+
"blockNumber": 486895439,
16+
"verified": "https://arbiscan.io/address/0xb64f29b2d81140ffc3a135e319561a1bd03b1a7e#code"
1317
},
1418
"implementationDeployment": {
1519
"txHash": "0x0f01260443e2547458e157b945393de57368b2ad0c094e1d336b1cc84a6ae755",
1620
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7",
1721
"bytecodeHash": "0xede6adaf8c20503ed0be89cdd6cbbf166b517754ee077bdcd9d0c8c5ef6d9837",
18-
"blockNumber": 486895432
22+
"blockNumber": 486895432,
23+
"verified": "https://arbiscan.io/address/0xf47b3a62f815121eadddc135f5515b274e2feff2#code"
1924
}
2025
},
2126
"DirectAllocation_Implementation": {
@@ -24,7 +29,8 @@
2429
"txHash": "0x392fd65b2708f8a31b5b34f5bdc53b1a6d7332fa6ad7bc26883cbc60c8003b69",
2530
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7",
2631
"bytecodeHash": "0x1d65994aa7dc0e21ec53bc490e6420b354f4ec1ea03e06b41623395f9fe12292",
27-
"blockNumber": 486895466
32+
"blockNumber": 486895466,
33+
"verified": "https://arbiscan.io/address/0xa8db3fc2bc71fef20b7af143fcb58d014028c774#code"
2834
}
2935
},
3036
"DefaultAllocation": {
@@ -36,7 +42,8 @@
3642
"txHash": "0x95c15a27676d94c59ee4277dc33e2df34192e4afe9cc1a6a697cb90402d7db80",
3743
"argsData": "0x000000000000000000000000a8db3fc2bc71fef20b7af143fcb58d014028c7740000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
3844
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
39-
"blockNumber": 486895481
45+
"blockNumber": 486895481,
46+
"verified": "https://arbiscan.io/address/0x28cd50e9e02856908f4c1966ab035b1f6c4dde1e#code"
4047
}
4148
},
4249
"ReclaimedRewards": {
@@ -48,7 +55,8 @@
4855
"txHash": "0x02d11835a2c98cfe1c9b041abd8dfa5592bab2d01cb6a5f24246754ea9542e91",
4956
"argsData": "0x000000000000000000000000a8db3fc2bc71fef20b7af143fcb58d014028c7740000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
5057
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
51-
"blockNumber": 486895501
58+
"blockNumber": 486895501,
59+
"verified": "https://arbiscan.io/address/0xe26cdc4ef915d12551ea67a7cbb838e91a24bb37#code"
5260
}
5361
},
5462
"RecurringAgreementManager": {
@@ -60,13 +68,15 @@
6068
"txHash": "0xd286470d33f8b1d88a359b2aab2aab5ca20f98a6ba541e42aa7a09c1aabc4e3b",
6169
"argsData": "0x00000000000000000000000009ac86ba5edef13673f9035eb76f7e1304413ca80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
6270
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
63-
"blockNumber": 486895534
71+
"blockNumber": 486895534,
72+
"verified": "https://arbiscan.io/address/0x51f860b03dee6a6ea27392dcceccd908204149f2#code"
6473
},
6574
"implementationDeployment": {
6675
"txHash": "0x7fbf12da008da09a8b6e962dc244600d2917f08362aefd66d0d469c9e6c8243a",
6776
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7000000000000000000000000f6fcc27aaf1fcd8b254498c9794451d82afc673e",
6877
"bytecodeHash": "0x82748ce78d63efac41792f4885a66924846d9e14b548c2fba4f934e20d5021d8",
69-
"blockNumber": 486895527
78+
"blockNumber": 486895527,
79+
"verified": "https://arbiscan.io/address/0x09ac86ba5edef13673f9035eb76f7e1304413ca8#code"
7080
}
7181
},
7282
"RewardsEligibilityOracleA": {
@@ -78,13 +88,15 @@
7888
"txHash": "0x51a00b6cf1fe3ff3f4811697e7a86e8944c5dd1035ed3d25f84fe92ddc52d278",
7989
"argsData": "0x00000000000000000000000066cebbec74d413ce45b85156dcb3d7a24724b95b0000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
8090
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
81-
"blockNumber": 486895566
91+
"blockNumber": 486895566,
92+
"verified": "https://arbiscan.io/address/0x02753bae61c08abd4351bce7f48524935c2cc78e#code"
8293
},
8394
"implementationDeployment": {
8495
"txHash": "0xa68cdcfe8728118d4042bbe4a25c7d5d7d2e96c5a144181885521f31a874505d",
8596
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7",
8697
"bytecodeHash": "0x8ff7d1a6e22cf7f074c4688d9c84394ee151531de3f219ceabf66f0386201412",
87-
"blockNumber": 486895559
98+
"blockNumber": 486895559,
99+
"verified": "https://arbiscan.io/address/0x66cebbec74d413ce45b85156dcb3d7a24724b95b#code"
88100
}
89101
},
90102
"RewardsEligibilityOracleB": {
@@ -96,13 +108,15 @@
96108
"txHash": "0x1abd678a514fe0ec0b7824addccde258951a817d39394575250cb91762d3ec20",
97109
"argsData": "0x00000000000000000000000016e3d77048496a5dcbab1de924fd77569f8affba0000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
98110
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
99-
"blockNumber": 486895606
111+
"blockNumber": 486895606,
112+
"verified": "https://arbiscan.io/address/0xeebc4919a239c1315a7e0652e692812719bad591#code"
100113
},
101114
"implementationDeployment": {
102115
"txHash": "0x4af6e16a5ca58d4054271c87c8690ba17db6b391ce5a535539a12f15e780811c",
103116
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7",
104117
"bytecodeHash": "0x8ff7d1a6e22cf7f074c4688d9c84394ee151531de3f219ceabf66f0386201412",
105-
"blockNumber": 486895599
118+
"blockNumber": 486895599,
119+
"verified": "https://arbiscan.io/address/0x16e3d77048496a5dcbab1de924fd77569f8affba#code"
106120
}
107121
},
108122
"RewardsEligibilityOracleMock": {
@@ -114,13 +128,15 @@
114128
"txHash": "0xc132cb8282f28dc24131e9c6a219debb30efbce557d00f0bbfae6213eac9c2d4",
115129
"argsData": "0x0000000000000000000000006f1faf85ade084dd94181acf9497ff6ff76e5e590000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de80000000000000000000000004528fd7868c91ef64b9907450ee8d82dc639612c00000000000000000000000000000000000000000000000000000000",
116130
"bytecodeHash": "0x6b4ba3015667741610274b7c196ec5d7767235d85865912f7ac680eac3011c54",
117-
"blockNumber": 486895646
131+
"blockNumber": 486895646,
132+
"verified": "https://arbiscan.io/address/0x25fe42a6217596c47205242b5bed6a7a724cbce6#code"
118133
},
119134
"implementationDeployment": {
120135
"txHash": "0xe5c5b5591eda133455f18014722940a6ae04c2128a6110495ca8f1e2a2c2c799",
121136
"argsData": "0x0000000000000000000000009623063377ad1b27544c965ccd7342f7ea7e88c7",
122137
"bytecodeHash": "0x7048d139b92b2e2638c66eca026737eddd064e85ebf20e0438bdef81232ea320",
123-
"blockNumber": 486895639
138+
"blockNumber": 486895639,
139+
"verified": "https://arbiscan.io/address/0x6f1faf85ade084dd94181acf9497ff6ff76e5e59#code"
124140
}
125141
}
126142
},

packages/subgraph-service/addresses.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414
"blockNumber": 486895347,
1515
"timestamp": "2026-07-23T13:58:52.000Z"
1616
}
17+
},
18+
"proxyDeployment": {
19+
"verified": "https://arbiscan.io/address/0xb2Bb92d0DE618878E438b55D5846cfecD9301105#code"
20+
},
21+
"implementationDeployment": {
22+
"verified": "https://arbiscan.io/address/0x80D1a23472a4EcFa484c95779D5CE855C24747cD#code"
1723
}
1824
},
1925
"DisputeManager": {
@@ -30,6 +36,9 @@
3036
"blockNumber": 486895371,
3137
"timestamp": "2026-07-23T13:58:58.000Z"
3238
}
39+
},
40+
"implementationDeployment": {
41+
"verified": "https://arbiscan.io/address/0x0fa6925f21d0493072ad29f3aF66f4E11655faF1#code"
3342
}
3443
},
3544
"L2Curation": {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
diff --git a/dist/index.js b/dist/index.js
2+
index 166db4f708c7f4b4d232b5be25bfe64c6d25f448..c18de8ebc6c7ceab809c6354e990dc07ab382261 100644
3+
--- a/dist/index.js
4+
+++ b/dist/index.js
5+
@@ -125,6 +125,7 @@ export function read(env) {
6+
data: calldata,
7+
// value: `0x${viemArgs.value?.toString(16)}` as `0x${string}`,
8+
},
9+
+ 'latest', // block parameter: strict RPC nodes (e.g. Arbitrum Nitro) require it on eth_call
10+
], // TODO fix eip-1193 ?,,
11+
}));
12+
const parsed = decodeFunctionResult({

pnpm-lock.yaml

Lines changed: 7 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)