@@ -626,6 +626,7 @@ fn test_try_associate_hotkey() {
626
626
627
627
#[ test]
628
628
fn test_stake_fee_api ( ) {
629
+ // The API should match the calculation
629
630
new_test_ext ( 1 ) . execute_with ( || {
630
631
let hotkey1 = U256 :: from ( 1 ) ;
631
632
let coldkey1 = U256 :: from ( 2 ) ;
@@ -642,8 +643,6 @@ fn test_stake_fee_api() {
642
643
let reciprocal_price = 2 ; // 1 / price
643
644
let stake_amount = 100_000_000_000 ;
644
645
645
- let default_fee = DefaultStakingFee :: < Test > :: get ( ) ;
646
-
647
646
// Setup alpha out
648
647
SubnetAlphaOut :: < Test > :: insert ( netuid0, 100_000_000_000 ) ;
649
648
SubnetAlphaOut :: < Test > :: insert ( netuid1, 100_000_000_000 ) ;
@@ -668,8 +667,15 @@ fn test_stake_fee_api() {
668
667
Some ( ( hotkey1, netuid0) ) ,
669
668
coldkey1,
670
669
stake_amount,
671
- ) ; // Default for adding stake
672
- assert_eq ! ( stake_fee_0, default_fee) ;
670
+ ) ;
671
+ let dynamic_fee_0 = SubtensorModule :: calculate_staking_fee (
672
+ None ,
673
+ & coldkey1,
674
+ Some ( ( & hotkey1, netuid0) ) ,
675
+ & coldkey1,
676
+ I96F32 :: saturating_from_num ( stake_amount) ,
677
+ ) ;
678
+ assert_eq ! ( stake_fee_0, dynamic_fee_0) ;
673
679
674
680
// Test stake fee for remove on root
675
681
let stake_fee_1 = SubtensorModule :: get_stake_fee (
@@ -678,8 +684,15 @@ fn test_stake_fee_api() {
678
684
None ,
679
685
coldkey1,
680
686
stake_amount,
681
- ) ; // Default for removing stake from root
682
- assert_eq ! ( stake_fee_1, default_fee) ;
687
+ ) ;
688
+ let dynamic_fee_1 = SubtensorModule :: calculate_staking_fee (
689
+ Some ( ( & hotkey1, root_netuid) ) ,
690
+ & coldkey1,
691
+ None ,
692
+ & coldkey1,
693
+ I96F32 :: saturating_from_num ( stake_amount) ,
694
+ ) ;
695
+ assert_eq ! ( stake_fee_1, dynamic_fee_1) ;
683
696
684
697
// Test stake fee for move from root to non-root
685
698
let stake_fee_2 = SubtensorModule :: get_stake_fee (
@@ -688,8 +701,15 @@ fn test_stake_fee_api() {
688
701
Some ( ( hotkey1, netuid0) ) ,
689
702
coldkey1,
690
703
stake_amount,
691
- ) ; // Default for moving stake from root to non-root
692
- assert_eq ! ( stake_fee_2, default_fee) ;
704
+ ) ;
705
+ let dynamic_fee_2 = SubtensorModule :: calculate_staking_fee (
706
+ Some ( ( & hotkey1, root_netuid) ) ,
707
+ & coldkey1,
708
+ Some ( ( & hotkey1, netuid0) ) ,
709
+ & coldkey1,
710
+ I96F32 :: saturating_from_num ( stake_amount) ,
711
+ ) ;
712
+ assert_eq ! ( stake_fee_2, dynamic_fee_2) ;
693
713
694
714
// Test stake fee for move between hotkeys on root
695
715
let stake_fee_3 = SubtensorModule :: get_stake_fee (
@@ -698,8 +718,15 @@ fn test_stake_fee_api() {
698
718
Some ( ( hotkey2, root_netuid) ) ,
699
719
coldkey1,
700
720
stake_amount,
701
- ) ; // Default for moving stake between hotkeys on root
702
- assert_eq ! ( stake_fee_3, default_fee) ;
721
+ ) ;
722
+ let dynamic_fee_3 = SubtensorModule :: calculate_staking_fee (
723
+ Some ( ( & hotkey1, root_netuid) ) ,
724
+ & coldkey1,
725
+ Some ( ( & hotkey2, root_netuid) ) ,
726
+ & coldkey1,
727
+ I96F32 :: saturating_from_num ( stake_amount) ,
728
+ ) ;
729
+ assert_eq ! ( stake_fee_3, dynamic_fee_3) ;
703
730
704
731
// Test stake fee for move between coldkeys on root
705
732
let stake_fee_4 = SubtensorModule :: get_stake_fee (
@@ -708,8 +735,15 @@ fn test_stake_fee_api() {
708
735
Some ( ( hotkey1, root_netuid) ) ,
709
736
coldkey2,
710
737
stake_amount,
711
- ) ; // Default for moving stake between coldkeys on root
712
- assert_eq ! ( stake_fee_4, default_fee) ;
738
+ ) ;
739
+ let dynamic_fee_4 = SubtensorModule :: calculate_staking_fee (
740
+ Some ( ( & hotkey1, root_netuid) ) ,
741
+ & coldkey1,
742
+ Some ( ( & hotkey1, root_netuid) ) ,
743
+ & coldkey2,
744
+ I96F32 :: saturating_from_num ( stake_amount) ,
745
+ ) ;
746
+ assert_eq ! ( stake_fee_4, dynamic_fee_4) ;
713
747
714
748
// Test stake fee for *swap* from non-root to root
715
749
let stake_fee_5 = SubtensorModule :: get_stake_fee (
@@ -718,7 +752,7 @@ fn test_stake_fee_api() {
718
752
Some ( ( hotkey1, root_netuid) ) ,
719
753
coldkey1,
720
754
stake_amount,
721
- ) ; // Charged a dynamic fee
755
+ ) ;
722
756
let dynamic_fee_5 = SubtensorModule :: calculate_staking_fee (
723
757
Some ( ( & hotkey1, netuid0) ) ,
724
758
& coldkey1,
@@ -735,7 +769,7 @@ fn test_stake_fee_api() {
735
769
Some ( ( hotkey2, netuid0) ) ,
736
770
coldkey1,
737
771
stake_amount,
738
- ) ; // Charged a dynamic fee
772
+ ) ;
739
773
let dynamic_fee_6 = SubtensorModule :: calculate_staking_fee (
740
774
Some ( ( & hotkey1, netuid0) ) ,
741
775
& coldkey1,
@@ -752,7 +786,7 @@ fn test_stake_fee_api() {
752
786
Some ( ( hotkey1, netuid0) ) ,
753
787
coldkey2,
754
788
stake_amount,
755
- ) ; // Charged a dynamic fee
789
+ ) ;
756
790
let dynamic_fee_7 = SubtensorModule :: calculate_staking_fee (
757
791
Some ( ( & hotkey1, netuid0) ) ,
758
792
& coldkey1,
@@ -769,7 +803,7 @@ fn test_stake_fee_api() {
769
803
Some ( ( hotkey1, netuid1) ) ,
770
804
coldkey1,
771
805
stake_amount,
772
- ) ; // Charged a dynamic fee
806
+ ) ;
773
807
let dynamic_fee_8 = SubtensorModule :: calculate_staking_fee (
774
808
Some ( ( & hotkey1, netuid0) ) ,
775
809
& coldkey1,
0 commit comments