mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 02:21:14 +00:00
Initial mechanics for 80:20 fee split (#2912)
* Initial mechanics for 80:20 fee split Also: - Introduce extra functions for Imbalance manipulation; - Store treasury pot in an account, letting total issuance account for it. * Fix some tests * Fix some tests * Minor cleanups * Update parity-codec version (#2855) * Update parity-codec version * Update grandpa, rhododendron and trie-bench * Use primitive-types from crates.io * Bump impl version * Fix trie-bench version * Fix lock files * Fix versions * Update codec to 4.1 * merge fix * Revert merge * More reversions * Remove accidental code * Update locks * Bump runtime * Update locks * Tweaks and label TODO * Update srml/treasury/src/lib.rs Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com> * Update issue number * Update core/sr-primitives/src/traits.rs Co-Authored-By: Robert Habermeier <rphmeier@gmail.com> * Fix wasm build * Fix subkey build
This commit is contained in:
@@ -161,7 +161,7 @@ use srml_support::traits::{
|
||||
use srml_support::dispatch::Result;
|
||||
use primitives::traits::{
|
||||
Zero, SimpleArithmetic, StaticLookup, Member, CheckedAdd, CheckedSub,
|
||||
MaybeSerializeDebug, Saturating
|
||||
MaybeSerializeDebug, Saturating, Bounded
|
||||
};
|
||||
use system::{IsDeadAccount, OnNewAccount, ensure_signed};
|
||||
|
||||
@@ -313,7 +313,9 @@ decl_storage! {
|
||||
///
|
||||
/// `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets
|
||||
/// collapsed to zero if it ever becomes less than `ExistentialDeposit`.
|
||||
pub FreeBalance get(free_balance) build(|config: &GenesisConfig<T, I>| config.balances.clone()): map T::AccountId => T::Balance;
|
||||
pub FreeBalance get(free_balance)
|
||||
build(|config: &GenesisConfig<T, I>| config.balances.clone()):
|
||||
map T::AccountId => T::Balance;
|
||||
|
||||
/// The amount of the balance of a given account that is externally reserved; this can still get
|
||||
/// slashed, but gets slashed last of all.
|
||||
@@ -735,6 +737,26 @@ where
|
||||
<FreeBalance<T, I>>::get(who)
|
||||
}
|
||||
|
||||
fn burn(mut amount: Self::Balance) -> Self::PositiveImbalance {
|
||||
<TotalIssuance<T, I>>::mutate(|issued|
|
||||
issued.checked_sub(&amount).unwrap_or_else(|| {
|
||||
amount = *issued;
|
||||
Zero::zero()
|
||||
})
|
||||
);
|
||||
PositiveImbalance::new(amount)
|
||||
}
|
||||
|
||||
fn issue(mut amount: Self::Balance) -> Self::NegativeImbalance {
|
||||
<TotalIssuance<T, I>>::mutate(|issued|
|
||||
*issued = issued.checked_add(&amount).unwrap_or_else(|| {
|
||||
amount = Self::Balance::max_value() - *issued;
|
||||
Self::Balance::max_value()
|
||||
})
|
||||
);
|
||||
NegativeImbalance::new(amount)
|
||||
}
|
||||
|
||||
// # <weight>
|
||||
// Despite iterating over a list of locks, they are limited by the number of
|
||||
// lock IDs, which means the number of runtime modules that intend to use and create locks.
|
||||
|
||||
Reference in New Issue
Block a user