mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 13:27:57 +00:00
Salary pallet (#13378)
* More drafting * Paymaster pallet * Fix build * More tests * Rename * Rename * Renaming * Revert old changes * Multi-phase payouts to avoid bank-runs * Tests * Tests * Allow payment to be targeted elsewhere * Proper ssync payment failure handling * Test for repayment * Docs * Impl RankedMembers for RankedCollective * Implement Pay for Pot (i.e. basic account). * Benchmarks * Weights * Introduce Salary benchmark into node * Fix warning * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_salary * Update primitives/arithmetic/src/traits.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * Update frame/salary/src/lib.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * Update lib.rs * Update frame/salary/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Docs * Update frame/salary/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update frame/salary/src/lib.rs Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Fix * Fixes * Fixes * Move some salary traits stuff to a shared location * Fix * Update frame/salary/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/salary/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Mul floor * Fix warnings * Fix test * Docs --------- Co-authored-by: command-bot <> Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
@@ -32,10 +32,11 @@ use frame_support::{
|
||||
pallet_prelude::Get,
|
||||
parameter_types,
|
||||
traits::{
|
||||
fungible::ItemOf, tokens::nonfungibles_v2::Inspect, AsEnsureOriginWithArg, ConstBool,
|
||||
ConstU128, ConstU16, ConstU32, Currency, EitherOfDiverse, EqualPrivilegeOnly, Everything,
|
||||
Imbalance, InstanceFilter, KeyOwnerProofSystem, LockIdentifier, Nothing, OnUnbalanced,
|
||||
U128CurrencyToVote, WithdrawReasons,
|
||||
fungible::ItemOf,
|
||||
tokens::{nonfungibles_v2::Inspect, GetSalary},
|
||||
AsEnsureOriginWithArg, ConstBool, ConstU128, ConstU16, ConstU32, Currency, EitherOfDiverse,
|
||||
EqualPrivilegeOnly, Everything, Imbalance, InstanceFilter, KeyOwnerProofSystem,
|
||||
LockIdentifier, Nothing, OnUnbalanced, U128CurrencyToVote, WithdrawReasons,
|
||||
},
|
||||
weights::{
|
||||
constants::{
|
||||
@@ -1571,6 +1572,29 @@ impl pallet_uniques::Config for Runtime {
|
||||
type Locker = ();
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const Budget: Balance = 10_000 * DOLLARS;
|
||||
pub TreasuryAccount: AccountId = Treasury::account_id();
|
||||
}
|
||||
|
||||
pub struct SalaryForRank;
|
||||
impl GetSalary<u16, AccountId, Balance> for SalaryForRank {
|
||||
fn get_salary(a: u16, _: &AccountId) -> Balance {
|
||||
Balance::from(a) * 1000 * DOLLARS
|
||||
}
|
||||
}
|
||||
|
||||
impl pallet_salary::Config for Runtime {
|
||||
type WeightInfo = ();
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type Paymaster = pallet_salary::PayFromAccount<Balances, TreasuryAccount>;
|
||||
type Members = RankedCollective;
|
||||
type Salary = SalaryForRank;
|
||||
type RegistrationPeriod = ConstU32<200>;
|
||||
type PayoutPeriod = ConstU32<200>;
|
||||
type Budget = Budget;
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub Features: PalletFeatures = PalletFeatures::all_enabled();
|
||||
pub const MaxAttributesPerCall: u32 = 10;
|
||||
@@ -1766,6 +1790,7 @@ construct_runtime!(
|
||||
Nis: pallet_nis,
|
||||
Uniques: pallet_uniques,
|
||||
Nfts: pallet_nfts,
|
||||
Salary: pallet_salary,
|
||||
TransactionStorage: pallet_transaction_storage,
|
||||
VoterList: pallet_bags_list::<Instance1>,
|
||||
StateTrieMigration: pallet_state_trie_migration,
|
||||
@@ -1885,6 +1910,7 @@ mod benches {
|
||||
[pallet_referenda, Referenda]
|
||||
[pallet_recovery, Recovery]
|
||||
[pallet_remark, Remark]
|
||||
[pallet_salary, Salary]
|
||||
[pallet_scheduler, Scheduler]
|
||||
[pallet_glutton, Glutton]
|
||||
[pallet_session, SessionBench::<Runtime>]
|
||||
|
||||
Reference in New Issue
Block a user