You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
assertnottriggerable_withdrawals_gateway.hasRole(add_full_withdrawal_request_role, contracts.validators_exit_bus_oracle), "VEBO should not have ADD_FULL_WITHDRAWAL_REQUEST_ROLE before upgrade"
251
262
263
+
# Step 9: Check EasyTrack VEB SUBMIT_REPORT_HASH_ROLE initial state
assertnotcontracts.validators_exit_bus_oracle.hasRole(submit_report_hash_role, EASYTRACK_EVMSCRIPT_EXECUTOR), "EasyTrack executor should not have SUBMIT_REPORT_HASH_ROLE on VEBO before upgrade"
266
+
267
+
# Step 10: Check DualGovernance tiebreaker initial state
assertinitial_ao_consensus_version<AO_CONSENSUS_VERSION, f"AO consensus version should be less than {AO_CONSENSUS_VERSION}"
264
284
assertnotcontracts.accounting_oracle.hasRole(contracts.accounting_oracle.MANAGE_CONSENSUS_VERSION_ROLE(), contracts.agent), "Agent should not have MANAGE_CONSENSUS_VERSION_ROLE on AO before upgrade"
265
285
286
+
# Step 17: Check AO version before finalizeUpgrade_v3
287
+
assertcontracts.accounting_oracle.getContractVersion() ==2, "AO contract version should be 2 before finalizeUpgrade_v3"
288
+
266
289
# Step 15: Check Staking Router implementation initial state
267
290
assertstaking_router_impl_before!=STAKING_ROUTER_IMPL, "Staking Router implementation should be different before upgrade"
assertEASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORYnotininitial_factories, "EasyTrack should not have CSMSetVettedGateTree factory before vote"
401
+
assertEASYTRACK_SDVT_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORYnotininitial_factories, "EasyTrack should not have SDVT validator exit request hashes factory before vote"
402
+
assertEASYTRACK_CURATED_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORYnotininitial_factories, "EasyTrack should not have Curated validator exit request hashes factory before vote"
403
+
404
+
# Gate Seals: Check initial states before vote
405
+
assertcontracts.withdrawal_queue.hasRole(contracts.withdrawal_queue.PAUSE_ROLE(), OLD_GATE_SEAL_ADDRESS), "Old GateSeal should have PAUSE_ROLE on WithdrawalQueue before vote"
406
+
assertcontracts.validators_exit_bus_oracle.hasRole(contracts.validators_exit_bus_oracle.PAUSE_ROLE(), OLD_GATE_SEAL_ADDRESS), "Old GateSeal should have PAUSE_ROLE on VEBO before vote"
407
+
assertnotcontracts.withdrawal_queue.hasRole(contracts.withdrawal_queue.PAUSE_ROLE(), NEW_WQ_GATE_SEAL), "New WQ GateSeal should not have PAUSE_ROLE on WithdrawalQueue before vote"
408
+
assertnotcontracts.validators_exit_bus_oracle.hasRole(contracts.validators_exit_bus_oracle.PAUSE_ROLE(), NEW_TW_GATE_SEAL), "New TW GateSeal should not have PAUSE_ROLE on VEBO before vote"
409
+
assertnottriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.PAUSE_ROLE(), NEW_TW_GATE_SEAL), "New TW GateSeal should not have PAUSE_ROLE on TWG before vote"
410
+
411
+
# ResealManager: Check initial states before vote
412
+
assertnottriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.PAUSE_ROLE(), RESEAL_MANAGER), "ResealManager should not have PAUSE_ROLE on TWG before vote"
413
+
assertnottriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.RESUME_ROLE(), RESEAL_MANAGER), "ResealManager should not have RESUME_ROLE on TWG before vote"
asserttriggerable_withdrawals_gateway.hasRole(add_full_withdrawal_request_role, cs_ejector), "CS Ejector should have ADD_FULL_WITHDRAWAL_REQUEST_ROLE on TWG"
421
457
asserttriggerable_withdrawals_gateway.hasRole(add_full_withdrawal_request_role, contracts.validators_exit_bus_oracle), "VEBO should have ADD_FULL_WITHDRAWAL_REQUEST_ROLE on TWG"
422
458
459
+
# Step 9: Validate EasyTrack VEB SUBMIT_REPORT_HASH_ROLE
460
+
assertcontracts.validators_exit_bus_oracle.hasRole(submit_report_hash_role, EASYTRACK_EVMSCRIPT_EXECUTOR), "EasyTrack executor should have SUBMIT_REPORT_HASH_ROLE on VEBO"
assertnotcontracts.accounting_oracle.hasRole(contracts.accounting_oracle.MANAGE_CONSENSUS_VERSION_ROLE(), contracts.agent), "Agent should not have MANAGE_CONSENSUS_VERSION_ROLE on AO"
430
474
assertcontracts.accounting_oracle.getConsensusVersion() ==AO_CONSENSUS_VERSION, f"AO consensus version should be set to {AO_CONSENSUS_VERSION}"
431
475
476
+
# Step 17: Validate AO finalizeUpgrade_v3
477
+
assertcontracts.accounting_oracle.getContractVersion() ==3, "AO contract version should be 3 after finalizeUpgrade_v3"
478
+
432
479
# Steps 15-17: Validate Staking Router upgrade
433
480
assertget_ossifiable_proxy_impl(contracts.staking_router) ==STAKING_ROUTER_IMPL, "Staking Router implementation should be updated"
434
481
assertcontracts.staking_router.hasRole(contracts.staking_router.REPORT_VALIDATOR_EXITING_STATUS_ROLE(), VALIDATOR_EXIT_VERIFIER), "ValidatorExitVerifier should have REPORT_VALIDATOR_EXITING_STATUS_ROLE on SR"
assertcsm_priority_exit_threshold_after==CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP, f"CSM priority exit threshold should be {CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP} after vote, but got {csm_priority_exit_threshold_after}"
532
579
580
+
581
+
# Steps 58-62: Validate Gate Seals updates
582
+
assertnotcontracts.withdrawal_queue.hasRole(contracts.withdrawal_queue.PAUSE_ROLE(), OLD_GATE_SEAL_ADDRESS), "Old GateSeal should not have PAUSE_ROLE on WithdrawalQueue after vote"
583
+
assertnotcontracts.validators_exit_bus_oracle.hasRole(contracts.validators_exit_bus_oracle.PAUSE_ROLE(), OLD_GATE_SEAL_ADDRESS), "Old GateSeal should not have PAUSE_ROLE on VEBO after vote"
584
+
assertcontracts.withdrawal_queue.hasRole(contracts.withdrawal_queue.PAUSE_ROLE(), NEW_WQ_GATE_SEAL), "New WQ GateSeal should have PAUSE_ROLE on WithdrawalQueue after vote"
585
+
assertcontracts.validators_exit_bus_oracle.hasRole(contracts.validators_exit_bus_oracle.PAUSE_ROLE(), NEW_TW_GATE_SEAL), "New TW GateSeal should have PAUSE_ROLE on VEBO after vote"
586
+
asserttriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.PAUSE_ROLE(), NEW_TW_GATE_SEAL), "New TW GateSeal should have PAUSE_ROLE on TWG after vote"
587
+
588
+
# Steps 63-64: Validate ResealManager roles
589
+
asserttriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.PAUSE_ROLE(), RESEAL_MANAGER), "ResealManager should have PAUSE_ROLE on TWG after vote"
590
+
asserttriggerable_withdrawals_gateway.hasRole(triggerable_withdrawals_gateway.RESUME_ROLE(), RESEAL_MANAGER), "ResealManager should have RESUME_ROLE on TWG after vote"
591
+
533
592
# Step 65: Add EasyTrack factory for CSSetVettedGateTree
assertEASYTRACK_SDVT_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORYinnew_factories, "EasyTrack should have SDVT validator exit request hashes factory after vote"
598
+
assertEASYTRACK_CURATED_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORYinnew_factories, "EasyTrack should have Curated validator exit request hashes factory after vote"
0 commit comments