@@ -68,7 +68,7 @@ impl<T: Config> Pallet<T> {
68
68
) ;
69
69
70
70
// --- 7. Unstake the amount of alpha from the origin subnet, converting it to TAO
71
- let fee = DefaultMinStake :: < T > :: get ( ) . saturating_div ( 2 ) ; // fee is half of min stake because it is applied twice
71
+ let fee = DefaultStakingFee :: < T > :: get ( ) . saturating_div ( 2 ) ; // fee is half of min stake because it is applied twice
72
72
let origin_tao = Self :: unstake_from_subnet (
73
73
& origin_hotkey. clone ( ) ,
74
74
& coldkey. clone ( ) ,
@@ -79,7 +79,7 @@ impl<T: Config> Pallet<T> {
79
79
80
80
// Ensure origin_tao is at least DefaultMinStake
81
81
ensure ! (
82
- origin_tao >= DefaultMinStake :: <T >:: get( ) ,
82
+ origin_tao. saturating_sub ( fee ) >= DefaultMinStake :: <T >:: get( ) ,
83
83
Error :: <T >:: AmountTooLow
84
84
) ;
85
85
@@ -181,13 +181,13 @@ impl<T: Config> Pallet<T> {
181
181
) ;
182
182
183
183
// 6. Unstake from the origin coldkey; this returns an amount of TAO.
184
- let fee = DefaultMinStake :: < T > :: get ( ) . saturating_div ( 2 ) ;
184
+ let fee = DefaultStakingFee :: < T > :: get ( ) . saturating_div ( 2 ) ;
185
185
let origin_tao =
186
186
Self :: unstake_from_subnet ( & hotkey, & coldkey, origin_netuid, alpha_amount, fee) ;
187
187
188
188
// 7. Ensure the returned TAO meets a minimum stake requirement (if required).
189
189
ensure ! (
190
- origin_tao >= DefaultMinStake :: <T >:: get( ) ,
190
+ origin_tao. saturating_sub ( fee ) >= DefaultMinStake :: <T >:: get( ) ,
191
191
Error :: <T >:: AmountTooLow
192
192
) ;
193
193
@@ -288,17 +288,18 @@ impl<T: Config> Pallet<T> {
288
288
) ;
289
289
290
290
// 6. Unstake from the origin subnet, returning TAO (or a 1:1 equivalent).
291
+ let fee = DefaultStakingFee :: < T > :: get ( ) . saturating_div ( 2 ) ;
291
292
let tao_unstaked =
292
- Self :: unstake_from_subnet ( & hotkey, & coldkey, origin_netuid, alpha_amount) ;
293
+ Self :: unstake_from_subnet ( & hotkey, & coldkey, origin_netuid, alpha_amount, fee ) ;
293
294
294
295
// 7. Check that the unstaked amount is above the minimum stake threshold.
295
296
ensure ! (
296
- tao_unstaked >= DefaultMinStake :: <T >:: get( ) ,
297
+ tao_unstaked. saturating_sub ( fee ) >= DefaultMinStake :: <T >:: get( ) ,
297
298
Error :: <T >:: AmountTooLow
298
299
) ;
299
300
300
301
// 8. Stake the unstaked amount into the destination subnet, using the same coldkey/hotkey.
301
- Self :: stake_into_subnet ( & hotkey, & coldkey, destination_netuid, tao_unstaked) ;
302
+ Self :: stake_into_subnet ( & hotkey, & coldkey, destination_netuid, tao_unstaked, fee ) ;
302
303
303
304
// 9. Emit an event for logging.
304
305
log:: info!(
0 commit comments