@@ -1466,3 +1466,61 @@ fn test_sudo_root_sets_subnet_moving_alpha() {
1466
1466
assert_eq ! ( pallet_subtensor:: SubnetMovingAlpha :: <Test >:: get( ) , alpha) ;
1467
1467
} ) ;
1468
1468
}
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 ! ( SubtensorModule :: get_nominator_min_required_stake( ) , initial_nominator_min_required_stake) ;
1502
+
1503
+
1504
+ // Stake to the hotkey as staker_coldkey
1505
+ SubtensorModule :: increase_stake_for_hotkey_and_coldkey_on_subnet ( & hotkey, & staker_coldkey, netuid, to_stake) ;
1506
+
1507
+
1508
+ assert_ok ! ( AdminUtils :: sudo_set_nominator_min_required_stake(
1509
+ RuntimeOrigin :: root( ) ,
1510
+ nominator_min_required_stake_0
1511
+ ) ) ;
1512
+ assert_eq ! ( SubtensorModule :: get_nominator_min_required_stake( ) , nominator_min_required_stake_0) ;
1513
+
1514
+ // Check this nomination is not cleared
1515
+ assert ! ( SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet( & hotkey, & staker_coldkey, netuid) > 0 ) ;
1516
+
1517
+ assert_ok ! ( AdminUtils :: sudo_set_nominator_min_required_stake(
1518
+ RuntimeOrigin :: root( ) ,
1519
+ nominator_min_required_stake_1
1520
+ ) ) ;
1521
+ assert_eq ! ( SubtensorModule :: get_nominator_min_required_stake( ) , nominator_min_required_stake_1) ;
1522
+
1523
+ // Check this nomination is cleared
1524
+ assert_eq ! ( SubtensorModule :: get_stake_for_hotkey_and_coldkey_on_subnet( & hotkey, & staker_coldkey, netuid) , 0 ) ;
1525
+ } ) ;
1526
+ }
0 commit comments