Skip to content

Commit 4409254

Browse files
committed
feat: CSM v2 addresses
1 parent f616f2c commit 4409254

2 files changed

Lines changed: 42 additions & 43 deletions

File tree

scripts/vote_tw_csm2_hoodi.py

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
54. Grant MANAGE_BOND_CURVES_ROLE to the AGENT
6969
55. Add Identified Community Stakers Gate Bond Curve
7070
56. Revoke MANAGE_BOND_CURVES_ROLE from the AGENT
71-
57. Increase CSM share in Staking Router from 15% to 20%
71+
57. Increase CSM share in Staking Router from 15% to 16%
7272
--- Gate Seals ---
7373
58. Revoke PAUSE_ROLE on WithdrawalQueue from the old GateSeal
7474
59. Revoke PAUSE_ROLE on ValidatorsExitBusOracle from the old GateSeal
@@ -79,9 +79,9 @@
7979
63. Grant PAUSE_ROLE on TriggerableWithdrawalsGateway to ResealManager
8080
64. Grant RESUME_ROLE on TriggerableWithdrawalsGateway to ResealManager
8181
--- EasyTrack ---
82-
65. Add `SubmitValidatorsExitRequestHashes` (SDVT) EVM script factory to Easy Track
83-
66. Add `SubmitValidatorsExitRequestHashes` (Curated Module) EVM script factory to Easy Track
84-
67. Add CSSetVettedGateTree factory to EasyTrack with permissions
82+
65. Add CSSetVettedGateTree factory to EasyTrack with permissions
83+
66. Add `SubmitValidatorsExitRequestHashes` (SDVT) EVM script factory to Easy Track
84+
67. Add `SubmitValidatorsExitRequestHashes` (Curated Module) EVM script factory to Easy Track
8585
"""
8686
import time
8787

@@ -143,25 +143,23 @@
143143
FRAME_DURATION_IN_SEC = 48
144144

145145
# CSM
146-
CS_MODULE_NEW_TARGET_SHARE_BP = 2000 # 20%
147-
CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP = 2500 # 25%
148-
149-
# TODO: Change to the correct addresses after deployment
150-
CS_ACCOUNTING_IMPL_V2_ADDRESS = "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB"
151-
CS_FEE_DISTRIBUTOR_IMPL_V2_ADDRESS = "0x1291Be112d480055DaFd8a610b7d1e203891C274"
152-
CS_FEE_ORACLE_IMPL_V2_ADDRESS = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"
153-
CSM_IMPL_V2_ADDRESS = "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90"
154-
155-
CS_GATE_SEAL_V2_ADDRESS = "0x1568928F73E4F5e2f748dA36bc56eCcc2fb66457"
156-
CS_SET_VETTED_GATE_TREE_FACTORY = ZERO_ADDRESS
157-
CS_EJECTOR_ADDRESS = "0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc"
158-
CS_PERMISSIONLESS_GATE_ADDRESS = "0x9E545E3C0baAB3E08CdfD552C960A1050f373042"
159-
CS_VETTED_GATE_ADDRESS = "0x9467A509DA43CB50EB332187602534991Be1fEa4"
160-
CS_VERIFIER_V2_ADDRESS = "0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07"
146+
CS_MODULE_NEW_TARGET_SHARE_BP = 1600 # 16%
147+
CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP = 2100 # 21%
148+
149+
CS_ACCOUNTING_IMPL_V2_ADDRESS = "0x9483b34504292a0E4f6509e5887D2c68f7129638"
150+
CS_FEE_DISTRIBUTOR_IMPL_V2_ADDRESS = "0xe05F7Aab7177D73f26e62a5296120583F5F18031"
151+
CS_FEE_ORACLE_IMPL_V2_ADDRESS = "0x752fF00fcacdB66Bc512a067F15A5E0B0b50EADB"
152+
CSM_IMPL_V2_ADDRESS = "0x9aE387EB2abA80B9B1ebc145597D593EFAE61f31"
153+
154+
CS_GATE_SEAL_V2_ADDRESS = "0x94a3aEB0E9148F64CB453Be2BDe2Bc0148f6AC24"
155+
CS_EJECTOR_ADDRESS = "0x21e271cBa32672B106737AbeB3a45E53Fe9a0df4"
156+
CS_PERMISSIONLESS_GATE_ADDRESS = "0x5553077102322689876A6AdFd48D75014c28acfb"
157+
CS_VETTED_GATE_ADDRESS = "0x10a254E724fe2b7f305F76f3F116a3969c53845f"
158+
CS_VERIFIER_V2_ADDRESS = "0xf805b3711cBB48F15Ae2bb27095ddC38c5339968"
161159

162160
CS_CURVES = [
163-
([1, 2 * 10**18], [2, 1.9 * 10**18], [3, 1.8 * 10**18], [4, 1.7 * 10**18], [5, 1.6 * 10**18], [6, 1.5 * 10**18]), # Default Curve
164-
([1, 1.5 * 10**18], [2, 1.9 * 10**18], [3, 1.8 * 10**18], [4, 1.7 * 10**18], [5, 1.6 * 10**18], [6, 1.5 * 10**18]), # Legacy EA Curve
161+
([1, 2.4 * 10**18], [2, 1.3 * 10**18]), # Default Curve
162+
([1, 1.5 * 10**18], [2, 1.3 * 10**18]), # Legacy EA Curve
165163
]
166164
CS_ICS_GATE_BOND_CURVE = ([1, 1.5 * 10**18], [2, 1.3 * 10**18]) # Identified Community Stakers Gate Bond Curve
167165

@@ -175,6 +173,7 @@
175173
EASYTRACK_EVMSCRIPT_EXECUTOR = "0x79a20FD0FA36453B2F45eAbab19bfef43575Ba9E"
176174
EASYTRACK_SDVT_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORY = "0xAa3D6A8B52447F272c1E8FAaA06EA06658bd95E2"
177175
EASYTRACK_CURATED_SUBMIT_VALIDATOR_EXIT_REQUEST_HASHES_FACTORY = "0x397206ecdbdcb1A55A75e60Fc4D054feC72E5f63"
176+
EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY = "0xa890fc73e1b771Ee6073e2402E631c312FF92Cd9"
178177

179178

180179
def encode_staking_router_proxy_update(implementation: str) -> Tuple[str, str]:
@@ -829,7 +828,7 @@ def start_vote(tx_params: Dict[str, str], silent: bool) -> Tuple[int, Optional[A
829828

830829
dg_bypass_item = {
831830
"65. Add CSSetVettedGateTree factory to EasyTrack with permissions": add_evmscript_factory(
832-
factory=CS_SET_VETTED_GATE_TREE_FACTORY,
831+
factory=EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY,
833832
permissions=(create_permissions(interface.CSVettedGate(CS_VETTED_GATE_ADDRESS), "setTreeParams")),
834833
),
835834
"66. Add `SubmitValidatorsExitRequestHashes` (SDVT) EVM script factory to Easy Track": add_evmscript_factory(

tests/test_vote_tw_csm2_hoodi.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -172,21 +172,19 @@ def check_proxy_implementation(proxy_address, expected_impl):
172172
NOR_EXIT_DEADLINE_IN_SEC = 172800
173173

174174
# CSM
175-
CS_MODULE_NEW_TARGET_SHARE_BP = 2000 # 20%
176-
CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP = 3000 # 30%
177-
178-
# TODO: Change to the correct addresses after deployment
179-
CS_ACCOUNTING_IMPL_V2_ADDRESS = "0x84eA74d481Ee0A5332c457a4d796187F6Ba67fEB"
180-
CS_FEE_DISTRIBUTOR_IMPL_V2_ADDRESS = "0x1291Be112d480055DaFd8a610b7d1e203891C274"
181-
CS_FEE_ORACLE_IMPL_V2_ADDRESS = "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0"
182-
CSM_IMPL_V2_ADDRESS = "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90"
183-
184-
CS_GATE_SEAL_V2_ADDRESS = "0x1568928F73E4F5e2f748dA36bc56eCcc2fb66457"
185-
CS_SET_VETTED_GATE_TREE_FACTORY = ZERO_ADDRESS
186-
CS_EJECTOR_ADDRESS = "0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc"
187-
CS_PERMISSIONLESS_GATE_ADDRESS = "0x9E545E3C0baAB3E08CdfD552C960A1050f373042"
188-
CS_VETTED_GATE_ADDRESS = "0x9467A509DA43CB50EB332187602534991Be1fEa4"
189-
CS_VERIFIER_V2_ADDRESS = "0xB0D4afd8879eD9F52b28595d31B441D079B2Ca07"
175+
CS_MODULE_NEW_TARGET_SHARE_BP = 1600 # 16%
176+
CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP = 2100 # 21%
177+
178+
CS_ACCOUNTING_IMPL_V2_ADDRESS = "0x9483b34504292a0E4f6509e5887D2c68f7129638"
179+
CS_FEE_DISTRIBUTOR_IMPL_V2_ADDRESS = "0xe05F7Aab7177D73f26e62a5296120583F5F18031"
180+
CS_FEE_ORACLE_IMPL_V2_ADDRESS = "0x752fF00fcacdB66Bc512a067F15A5E0B0b50EADB"
181+
CSM_IMPL_V2_ADDRESS = "0x9aE387EB2abA80B9B1ebc145597D593EFAE61f31"
182+
183+
CS_GATE_SEAL_V2_ADDRESS = "0x94a3aEB0E9148F64CB453Be2BDe2Bc0148f6AC24"
184+
CS_EJECTOR_ADDRESS = "0x21e271cBa32672B106737AbeB3a45E53Fe9a0df4"
185+
CS_PERMISSIONLESS_GATE_ADDRESS = "0x5553077102322689876A6AdFd48D75014c28acfb"
186+
CS_VETTED_GATE_ADDRESS = "0x10a254E724fe2b7f305F76f3F116a3969c53845f"
187+
CS_VERIFIER_V2_ADDRESS = "0xf805b3711cBB48F15Ae2bb27095ddC38c5339968"
190188

191189
CS_CURVES = [
192190
([1, 2.4 * 10**18], [2, 1.3 * 10**18]), # Default Curve
@@ -200,6 +198,8 @@ def check_proxy_implementation(proxy_address, expected_impl):
200198
CS_FEE_ORACLE_V2_VERSION = 2
201199
CS_FEE_DISTRIBUTOR_V2_VERSION = 2
202200

201+
EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY = "0xa890fc73e1b771Ee6073e2402E631c312FF92Cd9"
202+
203203

204204
def test_tw_vote(helpers, accounts, vote_ids_from_env, stranger):
205205
# Save original implementations for comparison
@@ -372,9 +372,9 @@ def test_tw_vote(helpers, accounts, vote_ids_from_env, stranger):
372372
assert csm_share_before != CS_MODULE_NEW_TARGET_SHARE_BP, f"CSM share should not be {CS_MODULE_NEW_TARGET_SHARE_BP} before vote, current: {csm_share_before}"
373373
assert csm_priority_exit_threshold_before != CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP, f"CSM priority exit threshold should not be {CS_MODULE_NEW_PRIORITY_EXIT_THRESHOLD_BP} before vote, current: {csm_priority_exit_threshold_before}"
374374

375-
# CSM Step 53: EasyTrack factories before vote (pre-vote state)
375+
# CSM Step 65: EasyTrack factories before vote (pre-vote state)
376376
initial_factories = contracts.easy_track.getEVMScriptFactories()
377-
assert CS_SET_VETTED_GATE_TREE_FACTORY not in initial_factories, "EasyTrack should not have CSMSetVettedGateTree factory before vote"
377+
assert EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY not in initial_factories, "EasyTrack should not have CSMSetVettedGateTree factory before vote"
378378

379379
# START VOTE
380380
if len(vote_ids_from_env) > 0:
@@ -530,9 +530,9 @@ def test_tw_vote(helpers, accounts, vote_ids_from_env, stranger):
530530
csm_priority_exit_threshold_after = csm_module_after['priorityExitShareThreshold']
531531
assert csm_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}"
532532

533-
# Step 54: Add EasyTrack factory for CSSetVettedGateTree
533+
# Step 65: Add EasyTrack factory for CSSetVettedGateTree
534534
new_factories = contracts.easy_track.getEVMScriptFactories()
535-
assert CS_SET_VETTED_GATE_TREE_FACTORY in new_factories, "EasyTrack should have CSSetVettedGateTree factory after vote"
535+
assert EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY in new_factories, "EasyTrack should have CSSetVettedGateTree factory after vote"
536536

537537
# --- VALIDATE EVENTS ---
538538

@@ -879,11 +879,11 @@ def test_tw_vote(helpers, accounts, vote_ids_from_env, stranger):
879879
emitted_by=contracts.staking_router
880880
)
881881

882-
# 55. Add EasyTrack factory for CSSetVettedGateTree
882+
# 65. Add EasyTrack factory for CSSetVettedGateTree
883883
validate_evmscript_factory_added_event(
884884
event=dg_bypass_voting_event,
885885
p=EVMScriptFactoryAdded(
886-
factory_addr=CS_SET_VETTED_GATE_TREE_FACTORY,
886+
factory_addr=EASYTRACK_CS_SET_VETTED_GATE_TREE_FACTORY,
887887
permissions=create_permissions(cs_vetted_gate, "setTreeParams")
888888
),
889889
emitted_by=contracts.easy_track,

0 commit comments

Comments
 (0)