diff --git a/pallets/swap/src/pallet/impls.rs b/pallets/swap/src/pallet/impls.rs index 946d9ab2b9..212649f73f 100644 --- a/pallets/swap/src/pallet/impls.rs +++ b/pallets/swap/src/pallet/impls.rs @@ -350,12 +350,23 @@ impl Pallet { let new_liquidity = helpers_128bit::sqrt( (new_tao_reserve as u128).saturating_mul(new_alpha_reserve as u128), ) as u64; + let liquidity_delta = new_liquidity.saturating_sub(position.liquidity); + // Update current liquidity + CurrentLiquidity::::mutate(netuid, |current_liquidity| { + *current_liquidity = current_liquidity.saturating_add(liquidity_delta); + }); + + // Update protocol position position.liquidity = new_liquidity; Positions::::insert( (netuid, protocol_account_id, position.id), position.clone(), ); + + // Update position ticks + Self::add_liquidity_at_index(netuid, position.tick_low, liquidity_delta, false); + Self::add_liquidity_at_index(netuid, position.tick_high, liquidity_delta, true); } } }