mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-20 23:21:02 +00:00
Add Deposit and Withdraw Events to Balances Pallet (#9425)
* add Deposit and Withdraw events to balances + add deposit_event() calls where appropriate to signal fund movement + adjust and extend tests * line length * move events to the end to avoid changing indices * bump spec_version * cargo fmt * adjust block import bench to new event count * fix node executor tests * adjust import bench comment * fix typo and formatting * adjust event number * fix copy pasta * fix contracts pallets tests * cargo fmt * WIP fix events in tests * fix offences tests * fix tests * cargo +nightly fmt * fix contracts pallets tests * cargo +nightly fmt * fix offences tests * formatting and compile fixes Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
This commit is contained in:
@@ -463,8 +463,6 @@ pub mod pallet {
|
||||
Transfer(T::AccountId, T::AccountId, T::Balance),
|
||||
/// A balance was set by root. \[who, free, reserved\]
|
||||
BalanceSet(T::AccountId, T::Balance, T::Balance),
|
||||
/// Some amount was deposited (e.g. for transaction fees). \[who, deposit\]
|
||||
Deposit(T::AccountId, T::Balance),
|
||||
/// Some balance was reserved (moved from free to reserved). \[who, value\]
|
||||
Reserved(T::AccountId, T::Balance),
|
||||
/// Some balance was unreserved (moved from reserved to free). \[who, value\]
|
||||
@@ -473,6 +471,14 @@ pub mod pallet {
|
||||
/// Final argument indicates the destination balance type.
|
||||
/// \[from, to, balance, destination_status\]
|
||||
ReserveRepatriated(T::AccountId, T::AccountId, T::Balance, Status),
|
||||
/// Some amount was deposited into the account (e.g. for transaction fees). \[who,
|
||||
/// deposit\]
|
||||
Deposit(T::AccountId, T::Balance),
|
||||
/// Some amount was withdrawn from the account (e.g. for transaction fees). \[who, value\]
|
||||
Withdraw(T::AccountId, T::Balance),
|
||||
/// Some amount was removed from the account (e.g. for misbehavior). \[who,
|
||||
/// amount_slashed\]
|
||||
Slashed(T::AccountId, T::Balance),
|
||||
}
|
||||
|
||||
/// Old name generated by `decl_event`.
|
||||
@@ -1103,6 +1109,7 @@ impl<T: Config<I>, I: 'static> fungible::Mutate<T::AccountId> for Pallet<T, I> {
|
||||
Ok(())
|
||||
})?;
|
||||
TotalIssuance::<T, I>::mutate(|t| *t += amount);
|
||||
Self::deposit_event(Event::Deposit(who.clone(), amount));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -1123,6 +1130,7 @@ impl<T: Config<I>, I: 'static> fungible::Mutate<T::AccountId> for Pallet<T, I> {
|
||||
},
|
||||
)?;
|
||||
TotalIssuance::<T, I>::mutate(|t| *t -= actual);
|
||||
Self::deposit_event(Event::Withdraw(who.clone(), amount));
|
||||
Ok(actual)
|
||||
}
|
||||
}
|
||||
@@ -1141,7 +1149,10 @@ impl<T: Config<I>, I: 'static> fungible::Transfer<T::AccountId> for Pallet<T, I>
|
||||
|
||||
impl<T: Config<I>, I: 'static> fungible::Unbalanced<T::AccountId> for Pallet<T, I> {
|
||||
fn set_balance(who: &T::AccountId, amount: Self::Balance) -> DispatchResult {
|
||||
Self::mutate_account(who, |account| account.free = amount)?;
|
||||
Self::mutate_account(who, |account| {
|
||||
account.free = amount;
|
||||
Self::deposit_event(Event::BalanceSet(who.clone(), account.free, account.reserved));
|
||||
})?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -1583,7 +1594,13 @@ where
|
||||
}
|
||||
},
|
||||
) {
|
||||
Ok(r) => return r,
|
||||
Ok((imbalance, not_slashed)) => {
|
||||
Self::deposit_event(Event::Slashed(
|
||||
who.clone(),
|
||||
value.saturating_sub(not_slashed),
|
||||
));
|
||||
return (imbalance, not_slashed)
|
||||
},
|
||||
Err(_) => (),
|
||||
}
|
||||
}
|
||||
@@ -1608,6 +1625,7 @@ where
|
||||
|account, is_new| -> Result<Self::PositiveImbalance, DispatchError> {
|
||||
ensure!(!is_new, Error::<T, I>::DeadAccount);
|
||||
account.free = account.free.checked_add(&value).ok_or(ArithmeticError::Overflow)?;
|
||||
Self::deposit_event(Event::Deposit(who.clone(), value));
|
||||
Ok(PositiveImbalance::new(value))
|
||||
},
|
||||
)
|
||||
@@ -1640,6 +1658,7 @@ where
|
||||
None => return Ok(Self::PositiveImbalance::zero()),
|
||||
};
|
||||
|
||||
Self::deposit_event(Event::Deposit(who.clone(), value));
|
||||
Ok(PositiveImbalance::new(value))
|
||||
},
|
||||
)
|
||||
@@ -1677,6 +1696,7 @@ where
|
||||
|
||||
account.free = new_free_account;
|
||||
|
||||
Self::deposit_event(Event::Withdraw(who.clone(), value));
|
||||
Ok(NegativeImbalance::new(value))
|
||||
},
|
||||
)
|
||||
@@ -1709,6 +1729,7 @@ where
|
||||
SignedImbalance::Negative(NegativeImbalance::new(account.free - value))
|
||||
};
|
||||
account.free = value;
|
||||
Self::deposit_event(Event::BalanceSet(who.clone(), account.free, account.reserved));
|
||||
Ok(imbalance)
|
||||
},
|
||||
)
|
||||
@@ -1824,7 +1845,13 @@ where
|
||||
// underflow should never happen, but it if does, there's nothing to be done here.
|
||||
(NegativeImbalance::new(actual), value - actual)
|
||||
}) {
|
||||
Ok(r) => return r,
|
||||
Ok((imbalance, not_slashed)) => {
|
||||
Self::deposit_event(Event::Slashed(
|
||||
who.clone(),
|
||||
value.saturating_sub(not_slashed),
|
||||
));
|
||||
return (imbalance, not_slashed)
|
||||
},
|
||||
Err(_) => (),
|
||||
}
|
||||
}
|
||||
@@ -1965,6 +1992,7 @@ where
|
||||
// `actual <= to_change` and `to_change <= amount`; qed;
|
||||
reserves[index].amount -= actual;
|
||||
|
||||
Self::deposit_event(Event::Slashed(who.clone(), actual));
|
||||
(imb, value - actual)
|
||||
},
|
||||
Err(_) => (NegativeImbalance::zero(), value),
|
||||
|
||||
Reference in New Issue
Block a user