From 11540c0745457352b2c96361043cf09422fa02e7 Mon Sep 17 00:00:00 2001 From: skhomuti Date: Thu, 23 Jan 2025 12:18:38 +0500 Subject: [PATCH] extended csm regression tests fixed minor things --- tests/regression/test_csm.py | 23 +++++++++++++++++++++-- tests/test_vote_2025_01_28.py | 33 +++++++++++++++++---------------- utils/test/csm_helpers.py | 4 ---- 3 files changed, 38 insertions(+), 22 deletions(-) diff --git a/tests/regression/test_csm.py b/tests/regression/test_csm.py index e6f3f266..8ce2d46a 100644 --- a/tests/regression/test_csm.py +++ b/tests/regression/test_csm.py @@ -43,6 +43,10 @@ def fee_distributor(): def fee_oracle(): return contracts.cs_fee_oracle +@pytest.fixture(scope="module") +def early_adoption(): + return contracts.cs_early_adoption + @pytest.fixture def node_operator(csm, accounting) -> int: @@ -98,8 +102,23 @@ def distribute_reward_tree(node_operator, ref_slot): @pytest.mark.parametrize("address, proof", get_ea_members()) -def test_add_ea_node_operator(csm, accounting, address, proof): - csm_add_node_operator(csm, accounting, address, proof) +def test_add_ea_node_operator(csm, accounting, early_adoption, address, proof): + no_id = csm_add_node_operator(csm, accounting, address, proof) + no = csm.getNodeOperator(no_id) + + assert no['managerAddress'] == address + assert no['rewardAddress'] == address + assert accounting.getBondCurveId(no_id) == early_adoption.CURVE_ID() + + +def test_add_node_operator_permissionless(csm, accounting, accounts): + address = accounts[8].address + no_id = csm_add_node_operator(csm, accounting, address, proof=[]) + no = csm.getNodeOperator(no_id) + + assert no['managerAddress'] == address + assert no['rewardAddress'] == address + assert accounting.getBondCurveId(no_id) == accounting.DEFAULT_BOND_CURVE_ID() @pytest.mark.usefixtures("pause_modules") diff --git a/tests/test_vote_2025_01_28.py b/tests/test_vote_2025_01_28.py index 667e53c0..0331bee4 100644 --- a/tests/test_vote_2025_01_28.py +++ b/tests/test_vote_2025_01_28.py @@ -17,6 +17,7 @@ def test_vote(helpers, accounts, vote_ids_from_env, stranger): node_operators_registry = interface.NodeOperatorsRegistry("0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5") agent = interface.Agent("0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c") module_manager_role = "0x79dfcec784e591aafcf60db7db7b029a5c8b12aac4afd4e8c4eb740430405fa6" + csm_module_id = 3 new_stake_share_limit = 200 #2% new_priority_exit_share_threshold = 250 new_name = "Solstice" @@ -29,18 +30,18 @@ def test_vote(helpers, accounts, vote_ids_from_env, stranger): old_min_deposit_block_distance = 25 # Agent doesn't have MODULE_MANAGER_ROLE - assert csm.hasRole(module_manager_role, agent) == False + assert csm.hasRole(module_manager_role, agent) is False # Public release mode is not active - assert csm.publicRelease() == False + assert csm.publicRelease() is False # Check old data - assert staking_router.getStakingModule(3)["stakeShareLimit"] == old_stake_share_limit - assert staking_router.getStakingModule(3)["priorityExitShareThreshold"] == old_priority_exit_share_threshold - assert staking_router.getStakingModule(3)["stakingModuleFee"] == old_staking_module_fee - assert staking_router.getStakingModule(3)["treasuryFee"] == old_treasury_fee - assert staking_router.getStakingModule(3)["maxDepositsPerBlock"] == old_max_deposits_per_block - assert staking_router.getStakingModule(3)["minDepositBlockDistance"] == old_min_deposit_block_distance + assert staking_router.getStakingModule(csm_module_id)["stakeShareLimit"] == old_stake_share_limit + assert staking_router.getStakingModule(csm_module_id)["priorityExitShareThreshold"] == old_priority_exit_share_threshold + assert staking_router.getStakingModule(csm_module_id)["stakingModuleFee"] == old_staking_module_fee + assert staking_router.getStakingModule(csm_module_id)["treasuryFee"] == old_treasury_fee + assert staking_router.getStakingModule(csm_module_id)["maxDepositsPerBlock"] == old_max_deposits_per_block + assert staking_router.getStakingModule(csm_module_id)["minDepositBlockDistance"] == old_min_deposit_block_distance # Check old name assert node_operators_registry.getNodeOperator(17, True)["name"] == old_name @@ -58,18 +59,18 @@ def test_vote(helpers, accounts, vote_ids_from_env, stranger): # I. CSM: Enable Permissionless Phase and Increase the Share Limit # # 2. Activate public release mode on CS Module - assert csm.publicRelease() == True + assert csm.publicRelease() is True # 3. Increase stake share limit from 1% to 2% on CS Module - assert staking_router.getStakingModule(3)["stakeShareLimit"] == new_stake_share_limit - assert staking_router.getStakingModule(3)["priorityExitShareThreshold"] == new_priority_exit_share_threshold - assert staking_router.getStakingModule(3)["stakingModuleFee"] == old_staking_module_fee - assert staking_router.getStakingModule(3)["treasuryFee"] == old_treasury_fee - assert staking_router.getStakingModule(3)["maxDepositsPerBlock"] == old_max_deposits_per_block - assert staking_router.getStakingModule(3)["minDepositBlockDistance"] == old_min_deposit_block_distance + assert staking_router.getStakingModule(csm_module_id)["stakeShareLimit"] == new_stake_share_limit + assert staking_router.getStakingModule(csm_module_id)["priorityExitShareThreshold"] == new_priority_exit_share_threshold + assert staking_router.getStakingModule(csm_module_id)["stakingModuleFee"] == old_staking_module_fee + assert staking_router.getStakingModule(csm_module_id)["treasuryFee"] == old_treasury_fee + assert staking_router.getStakingModule(csm_module_id)["maxDepositsPerBlock"] == old_max_deposits_per_block + assert staking_router.getStakingModule(csm_module_id)["minDepositBlockDistance"] == old_min_deposit_block_distance # 4. Revoke MODULE_MANAGER_ROLE on CS Module from Aragon Agent - assert csm.hasRole(module_manager_role, agent) == False + assert csm.hasRole(module_manager_role, agent) is False # # II. NO Acquisitions: Bridgetower is now part of Solstice Staking diff --git a/utils/test/csm_helpers.py b/utils/test/csm_helpers.py index eb374780..a99bb0be 100644 --- a/utils/test/csm_helpers.py +++ b/utils/test/csm_helpers.py @@ -170,10 +170,6 @@ def csm_upload_keys(csm, accounting, no_id, keys_count=5): def fill_csm_operators_with_keys(target_operators_count, keys_count): - if not contracts.csm.publicRelease(): - contracts.csm.grantRole(contracts.csm.MODULE_MANAGER_ROLE(), contracts.agent, {"from": contracts.agent}) - contracts.csm.activatePublicRelease({"from": contracts.agent}) - csm_node_operators_before = contracts.csm.getNodeOperatorsCount() added_operators_count = 0 for no_id in range(0, min(csm_node_operators_before, target_operators_count)):