@@ -1467,6 +1467,89 @@ fn test_sudo_root_sets_subnet_moving_alpha() {
1467
1467
} ) ;
1468
1468
}
1469
1469
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
+
1470
1553
#[ test]
1471
1554
fn test_sudo_set_subnet_owner_hotkey ( ) {
1472
1555
new_test_ext ( ) . execute_with ( || {
0 commit comments