@@ -19,6 +19,7 @@ import "src/contracts/pods/EigenPodManager.sol";
19
19
import "src/contracts/pods/EigenPod.sol " ;
20
20
import "src/contracts/permissions/PauserRegistry.sol " ;
21
21
import "src/contracts/permissions/PermissionController.sol " ;
22
+ import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol " ;
22
23
23
24
import "src/test/mocks/EmptyContract.sol " ;
24
25
import "src/test/mocks/ETHDepositMock.sol " ;
@@ -37,7 +38,7 @@ abstract contract IntegrationDeployer is ExistingDeploymentParser {
37
38
38
39
// Fork ids for specific fork tests
39
40
bool isUpgraded;
40
- uint mainnetForkBlock = 22_514_370 ; // Post Pectra Compatibility Upgrade
41
+ uint mainnetForkBlock = 22_949_454 ; // Post Pectra Compatibility Upgrade
41
42
42
43
string version = "9.9.9 " ;
43
44
@@ -54,6 +55,12 @@ abstract contract IntegrationDeployer is ExistingDeploymentParser {
54
55
55
56
uint32 INITIAL_GLOBAL_DELAY_BLOCKS = 4 days / 12 seconds ; // 4 days in blocks
56
57
58
+ // derived from
59
+ bytes calldataToExecutor_DISTRO =
60
+ hex"6A76120200000000000000000000000040A2ACCBD92BCA938B02010E17A5B8929B49130D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C800000000000000000000000000000000000000000000000000000000000000B048D80FF0A00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000AA2008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000039053D51B77DC0D36036FC1FCC8CB819DF8EF37A0000000000000000000000006EED6C2802DF347E05884857CDDB2D3E96D12F89008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000948A420B8CC1D6BFD0B6087C2E7C344A2CD0BC39000000000000000000000000C97602648FA52F92B4EE2B0E5A54BD15B6CB0345008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000858646372CC42E1A627FCE94AA7A7033E7CF075A00000000000000000000000046AEFD30415BE99E20169EE7046F65784B46D123008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000091E677B07F7AF907EC9A428AAFA9FC14A0D3A338000000000000000000000000E48D7CAEC1790B293667E4BB2DE1E00536F2BABD008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000ACB55C530ACDB2849E6D4F36992CD8C9D50ED8F7000000000000000000000000530FDB7ADF7D489DF49C27E3D3512C0DD64886BE000ED6703C298D28AE0878D1B28E88CA87F9662FE9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000243659CFE6000000000000000000000000D4D1746142642DB4C1AB17B03B9C58BAAC913E5B008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000093C4B944D05DFE6DF7645A86CD2206016C51564D00000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC40000000000000000000000001BEE69B7DFFFA4E2D53C2A2DF135C388AD25DCD200000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000054945180DB7943C0ED0FEE7EDAB2BD24620256BC00000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC40000000000000000000000009D7ED45EE2E8FC5482FA2428F15C971E6369011D00000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000013760F50A9D7377E4F20CB8CF9E4C26586C658FF00000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000A4C637E0F704745D182E4D38CAB7E7485321D05900000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC400000000000000000000000057BA429517C3473B6D34CA9ACD56C0E735B94C0200000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC40000000000000000000000000FE4F44BEE93503346A3AC9EE5A26B130A5796D600000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC40000000000000000000000007CA911E83DABF90C90DD3DE5411A10F1A611218400000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC40000000000000000000000008CA7A5D6F3ACD3A7A8BC468A8CD0FB14B6BD28B600000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000AE60D8180437B5C34BB956822AC271097258447300000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000298AFB19A105D59E74658C4C334FF360BADE6DD200000000000000000000000062F7226FB9D615590EADB539713B250FB2FDF4E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041000000000000000000000000C06FD4F821EAC1FF1AE8067B36342899B57BAA2D00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000";
61
+ bytes calldataToExecutor_MOOCOW =
62
+ hex"6A76120200000000000000000000000040A2ACCBD92BCA938B02010E17A5B8929B49130D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E000000000000000000000000000000000000000000000000000000000000001648D80FF0A00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000112005A2A4F2F3C18F09179B6703E63D9EDD165909073000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000243659CFE6000000000000000000000000CB27A4819A64FBA93ABD4D480E4466AEC0503745008B9566ADA63B64D1E1DCF1418B43FD1433B724440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004499A88EC4000000000000000000000000EC53BF9167F50CDEB3AE105F56099AAAB9061F830000000000000000000000002C4A81E257381F87F5A5C4BD525116466D972E500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041000000000000000000000000C06FD4F821EAC1FF1AE8067B36342899B57BAA2D00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000";
63
+
57
64
// Lists of strategies used in the system
58
65
//
59
66
// When we select random user assets, we use the `assetType` to determine
@@ -265,25 +272,40 @@ abstract contract IntegrationDeployer is ExistingDeploymentParser {
265
272
// Since we haven't done the slashing upgrade on mainnet yet, upgrade mainnet contracts
266
273
// prior to test. `isUpgraded` is true by default, but is set to false in `UpgradeTest.t.sol`
267
274
if (isUpgraded) {
268
- _upgradeMainnetContracts ();
275
+ cheats.startPrank (executorMultisig);
276
+
277
+ _deployProxies ();
278
+ _deployImplementations ();
279
+ _upgradeProxies ();
269
280
270
281
// Set the `pectraForkTimestamp` on the EigenPodManager. Use pectra state
271
- cheats.startPrank (executorMultisig);
272
282
eigenPodManager.setProofTimestampSetter (executorMultisig);
273
283
eigenPodManager.setPectraForkTimestamp (BEACON_GENESIS_TIME);
274
284
cheats.stopPrank ();
275
285
}
276
286
}
277
287
278
288
function _upgradeMainnetContracts () public virtual {
279
- cheats.startPrank (address (executorMultisig));
289
+ cheats.startPrank (address (protocolCouncil));
290
+
291
+ TimelockController tc = TimelockController (payable (timelockController));
292
+
293
+ uint executeTimestamp = tc.getTimestamp (tc.hashOperation (executorMultisig, 0 , calldataToExecutor_MOOCOW, bytes32 (0 ), bytes32 (0 ))); // using MOOCOW as it's the last tx in the queue
294
+
295
+ console.log ("executeTimestamp: " , executeTimestamp);
296
+ cheats.warp (executeTimestamp);
297
+
298
+ console.log (
299
+ "is it ready? " , tc.isOperationReady (tc.hashOperation (executorMultisig, 0 , calldataToExecutor_MOOCOW, bytes32 (0 ), bytes32 (0 )))
300
+ );
301
+
302
+ console.log ("trying first queued tx " );
303
+ // execute queued txs
304
+ tc.execute ({target: executorMultisig, value: 0 , payload: calldataToExecutor_DISTRO, predecessor: bytes32 (0 ), salt: bytes32 (0 )});
305
+
306
+ console.log ("trying second queued tx " );
307
+ tc.execute ({target: executorMultisig, value: 0 , payload: calldataToExecutor_MOOCOW, predecessor: bytes32 (0 ), salt: bytes32 (0 )});
280
308
281
- // First, deploy the new contracts as empty contracts
282
- emptyContract = new EmptyContract ();
283
- // Deploy new implementation contracts and upgrade all proxies to point to them
284
- _deployProxies (); // deploy proxies (if undeployed)
285
- _deployImplementations ();
286
- _upgradeProxies ();
287
309
cheats.stopPrank ();
288
310
}
289
311
@@ -375,6 +397,7 @@ abstract contract IntegrationDeployer is ExistingDeploymentParser {
375
397
376
398
// Pre-longtail StrategyBaseTVLLimits implementation
377
399
// TODO - need to update ExistingDeploymentParser
400
+ deployedStrategyArray;
378
401
379
402
// multichain
380
403
keyRegistrarImplementation = new KeyRegistrar (permissionController, allocationManager, "9.9.9 " );
0 commit comments