Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 56 additions & 56 deletions pallets/subtensor/src/tests/subnet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -717,62 +717,62 @@ fn test_subtoken_enable_ok_for_burn_register_before_enable() {
});
}

#[test]
fn test_user_liquidity_access_control() {
new_test_ext(1).execute_with(|| {
let owner_hotkey = U256::from(1);
let owner_coldkey = U256::from(2);
let not_owner = U256::from(999); // arbitrary non-owner

// add network
let netuid = add_dynamic_network(&owner_hotkey, &owner_coldkey);

// Not owner, not root: should fail
assert_noop!(
Swap::toggle_user_liquidity(RuntimeOrigin::signed(not_owner), netuid, true),
DispatchError::BadOrigin
);

// Subnet owner can enable
assert_ok!(Swap::toggle_user_liquidity(
RuntimeOrigin::signed(owner_coldkey),
netuid,
true
));
assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
NetUid::from(netuid)
));

// Root can disable
assert_ok!(Swap::toggle_user_liquidity(
RuntimeOrigin::root(),
netuid,
false
));
assert!(!pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
NetUid::from(netuid)
));

// Root can enable again
assert_ok!(Swap::toggle_user_liquidity(
RuntimeOrigin::root(),
netuid,
true
));
assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
NetUid::from(netuid)
));

// Subnet owner cannot disable (only root can disable)
assert_noop!(
Swap::toggle_user_liquidity(RuntimeOrigin::signed(owner_coldkey), netuid, false),
DispatchError::BadOrigin
);
assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
NetUid::from(netuid)
));
});
}
// #[test]
// fn test_user_liquidity_access_control() {
// new_test_ext(1).execute_with(|| {
// let owner_hotkey = U256::from(1);
// let owner_coldkey = U256::from(2);
// let not_owner = U256::from(999); // arbitrary non-owner

// // add network
// let netuid = add_dynamic_network(&owner_hotkey, &owner_coldkey);

// // Not owner, not root: should fail
// assert_noop!(
// Swap::toggle_user_liquidity(RuntimeOrigin::signed(not_owner), netuid, true),
// DispatchError::BadOrigin
// );

// // Subnet owner can enable
// assert_ok!(Swap::toggle_user_liquidity(
// RuntimeOrigin::signed(owner_coldkey),
// netuid,
// true
// ));
// assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
// NetUid::from(netuid)
// ));

// // Root can disable
// assert_ok!(Swap::toggle_user_liquidity(
// RuntimeOrigin::root(),
// netuid,
// false
// ));
// assert!(!pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
// NetUid::from(netuid)
// ));

// // Root can enable again
// assert_ok!(Swap::toggle_user_liquidity(
// RuntimeOrigin::root(),
// netuid,
// true
// ));
// assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
// NetUid::from(netuid)
// ));

// // Subnet owner cannot disable (only root can disable)
// assert_noop!(
// Swap::toggle_user_liquidity(RuntimeOrigin::signed(owner_coldkey), netuid, false),
// DispatchError::BadOrigin
// );
// assert!(pallet_subtensor_swap::EnabledUserLiquidity::<Test>::get(
// NetUid::from(netuid)
// ));
// });
// }

// cargo test --package pallet-subtensor --lib -- tests::subnet::test_no_duplicates_in_symbol_static --exact --show-output
#[test]
Expand Down
20 changes: 10 additions & 10 deletions pallets/swap/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ use subtensor_runtime_common::NetUid;

use crate::{
pallet::{
AlphaSqrtPrice, Call, Config, CurrentLiquidity, CurrentTick, EnabledUserLiquidity, Pallet,
Positions, SwapV3Initialized,
AlphaSqrtPrice, Call, Config, CurrentLiquidity, CurrentTick, Pallet, Positions,
SwapV3Initialized,
},
position::{Position, PositionId},
tick::TickIndex,
Expand Down Expand Up @@ -131,17 +131,17 @@ mod benchmarks {
);
}

#[benchmark]
fn toggle_user_liquidity() {
let netuid = NetUid::from(101);
// #[benchmark]
// fn toggle_user_liquidity() {
// let netuid = NetUid::from(101);

assert!(!EnabledUserLiquidity::<T>::get(netuid));
// assert!(!EnabledUserLiquidity::<T>::get(netuid));

#[extrinsic_call]
toggle_user_liquidity(RawOrigin::Root, netuid.into(), true);
// #[extrinsic_call]
// toggle_user_liquidity(RawOrigin::Root, netuid.into(), true);

assert!(EnabledUserLiquidity::<T>::get(netuid));
}
// assert!(EnabledUserLiquidity::<T>::get(netuid));
// }

impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Test);
}
29 changes: 27 additions & 2 deletions pallets/swap/src/pallet/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -350,9 +350,9 @@ mod pallet {
Error::<T>::MechanismDoesNotExist
);

EnabledUserLiquidity::<T>::insert(netuid, enable);
// EnabledUserLiquidity::<T>::insert(netuid, enable);

Self::deposit_event(Event::UserLiquidityToggled { netuid, enable });
// Self::deposit_event(Event::UserLiquidityToggled { netuid, enable });

Ok(())
}
Expand Down Expand Up @@ -600,5 +600,30 @@ mod pallet {

Ok(())
}

/// Disable user liquidity in all subnets.
///
/// Emits `Event::UserLiquidityToggled` on success
#[pallet::call_index(5)]
#[pallet::weight(<T as pallet::Config>::WeightInfo::modify_position())]
pub fn disable_lp(origin: OriginFor<T>) -> DispatchResult {
ensure_root(origin)?;

for netuid in 1..128 {
let netuid = NetUid::from(netuid as u16);
if EnabledUserLiquidity::<T>::get(netuid) {
EnabledUserLiquidity::<T>::insert(netuid, false);
Self::deposit_event(Event::UserLiquidityToggled {
netuid,
enable: false,
});

// Remove provided liquidity
// Self::do_dissolve_all_liquidity_providers(netuid)?;
}
}

Ok(())
}
}
}
Loading
Loading