Skip to content

Commit fc9e1a3

Browse files
committed
Fix total issuance update for subsidised subnets
1 parent 71455aa commit fc9e1a3

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

pallets/subtensor/src/coinbase/run_coinbase.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ impl<T: Config> Pallet<T> {
4040
let mut tao_in: BTreeMap<NetUid, U96F32> = BTreeMap::new();
4141
let mut alpha_in: BTreeMap<NetUid, U96F32> = BTreeMap::new();
4242
let mut alpha_out: BTreeMap<NetUid, U96F32> = BTreeMap::new();
43+
let mut ti_delta: BTreeMap<NetUid, U96F32> = BTreeMap::new();
4344
let mut is_subsidized: BTreeMap<NetUid, bool> = BTreeMap::new();
4445
// Only calculate for subnets that we are emitting to.
4546
for netuid_i in subnets_to_emit_to.iter() {
@@ -105,10 +106,12 @@ impl<T: Config> Pallet<T> {
105106
tao_in.insert(*netuid_i, tao_in_i);
106107
alpha_in.insert(*netuid_i, alpha_in_i);
107108
alpha_out.insert(*netuid_i, alpha_out_i);
109+
ti_delta.insert(*netuid_i, default_tao_in_i);
108110
}
109111
log::debug!("tao_in: {tao_in:?}");
110112
log::debug!("alpha_in: {alpha_in:?}");
111113
log::debug!("alpha_out: {alpha_out:?}");
114+
log::debug!("ti_delta: {ti_delta:?}");
112115

113116
// --- 4. Injection.
114117
// Actually perform the injection of alpha_in, alpha_out and tao_in into the subnet pool.
@@ -138,8 +141,10 @@ impl<T: Config> Pallet<T> {
138141
TotalStake::<T>::mutate(|total| {
139142
*total = total.saturating_add(tao_in_i.into());
140143
});
144+
let ti_delta_i: TaoCurrency =
145+
tou64!(*ti_delta.get(netuid_i).unwrap_or(&asfloat!(0))).into();
141146
TotalIssuance::<T>::mutate(|total| {
142-
*total = total.saturating_add(tao_in_i.into());
147+
*total = total.saturating_add(ti_delta_i.into());
143148
});
144149
// Adjust protocol liquidity based on new reserves
145150
T::SwapInterface::adjust_protocol_liquidity(*netuid_i, tao_in_i, alpha_in_i);

pallets/subtensor/src/tests/coinbase.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,9 @@ fn test_coinbase_tao_issuance_different_prices() {
244244
epsilon = 10.into(),
245245
);
246246

247-
// Prices are low => we limit tao issued (buy alpha with it)
248-
let tao_issued = TaoCurrency::from(((0.1 + 0.2) * emission as f64) as u64);
247+
// Prices are low => we limit tao issued (buy alpha with it), but total issuance
248+
// is still increased by emission amount
249+
let tao_issued = TaoCurrency::from(emission);
249250
assert_abs_diff_eq!(
250251
TotalIssuance::<Test>::get(),
251252
tao_issued,

0 commit comments

Comments
 (0)