Skip to content

Commit 318bd48

Browse files
authored
Merge pull request #1351 from opentensor/fix/clear-small-noms-if-new-min-nom-stake-less
Fix/clear small noms if new min nom stake less
2 parents 8f1d998 + 3bf3ab6 commit 318bd48

File tree

1 file changed

+83
-0
lines changed
  • pallets/admin-utils/src/tests

1 file changed

+83
-0
lines changed

pallets/admin-utils/src/tests/mod.rs

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,6 +1467,89 @@ fn test_sudo_root_sets_subnet_moving_alpha() {
14671467
});
14681468
}
14691469

1470+
#[test]
1471+
fn test_sets_a_lower_value_clears_small_nominations() {
1472+
new_test_ext().execute_with(|| {
1473+
let hotkey: U256 = U256::from(3);
1474+
let owner_coldkey: U256 = U256::from(1);
1475+
let staker_coldkey: U256 = U256::from(2);
1476+
1477+
let initial_nominator_min_required_stake = 10u64;
1478+
let nominator_min_required_stake_0 = 5u64;
1479+
let nominator_min_required_stake_1 = 20u64;
1480+
1481+
assert!(nominator_min_required_stake_0 < nominator_min_required_stake_1);
1482+
assert!(nominator_min_required_stake_0 < initial_nominator_min_required_stake);
1483+
1484+
let to_stake = initial_nominator_min_required_stake + 1;
1485+
1486+
assert!(to_stake > initial_nominator_min_required_stake);
1487+
assert!(to_stake > nominator_min_required_stake_0); // Should stay when set
1488+
assert!(to_stake < nominator_min_required_stake_1); // Should be removed when set
1489+
1490+
// Create network
1491+
let netuid = 2;
1492+
add_network(netuid, 10);
1493+
1494+
// Register a neuron
1495+
register_ok_neuron(netuid, hotkey, owner_coldkey, 0);
1496+
1497+
assert_ok!(AdminUtils::sudo_set_nominator_min_required_stake(
1498+
RuntimeOrigin::root(),
1499+
initial_nominator_min_required_stake
1500+
));
1501+
assert_eq!(
1502+
SubtensorModule::get_nominator_min_required_stake(),
1503+
initial_nominator_min_required_stake
1504+
);
1505+
1506+
// Stake to the hotkey as staker_coldkey
1507+
SubtensorModule::increase_stake_for_hotkey_and_coldkey_on_subnet(
1508+
&hotkey,
1509+
&staker_coldkey,
1510+
netuid,
1511+
to_stake,
1512+
);
1513+
1514+
assert_ok!(AdminUtils::sudo_set_nominator_min_required_stake(
1515+
RuntimeOrigin::root(),
1516+
nominator_min_required_stake_0
1517+
));
1518+
assert_eq!(
1519+
SubtensorModule::get_nominator_min_required_stake(),
1520+
nominator_min_required_stake_0
1521+
);
1522+
1523+
// Check this nomination is not cleared
1524+
assert!(
1525+
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(
1526+
&hotkey,
1527+
&staker_coldkey,
1528+
netuid
1529+
) > 0
1530+
);
1531+
1532+
assert_ok!(AdminUtils::sudo_set_nominator_min_required_stake(
1533+
RuntimeOrigin::root(),
1534+
nominator_min_required_stake_1
1535+
));
1536+
assert_eq!(
1537+
SubtensorModule::get_nominator_min_required_stake(),
1538+
nominator_min_required_stake_1
1539+
);
1540+
1541+
// Check this nomination is cleared
1542+
assert_eq!(
1543+
SubtensorModule::get_stake_for_hotkey_and_coldkey_on_subnet(
1544+
&hotkey,
1545+
&staker_coldkey,
1546+
netuid
1547+
),
1548+
0
1549+
);
1550+
});
1551+
}
1552+
14701553
#[test]
14711554
fn test_sudo_set_subnet_owner_hotkey() {
14721555
new_test_ext().execute_with(|| {

0 commit comments

Comments
 (0)