Logic for the (Core) Fellowship (#13503)

* 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

* Initial draft

* Comment out bits

* Fix

* First couple of tests

* One more test

* 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

* Tests

* Mul floor

* Fix warnings

* Fix test

* Tests

* Last tests

* Docs

* Fix warnings

* Benchmarks

* Weights

* Integrate benchmark

* Fixes

* Fix

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_core_fellowship

* Better process flow

* Fix benchmarks & tests

* Docs

* Fixes

* Fixes

* docs

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_core_fellowship

* Docs and allow custom evidence size

* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_core_fellowship

* Update frame/core-fellowship/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/core-fellowship/src/tests.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/core-fellowship/src/benchmarking.rs

* Update frame/core-fellowship/src/benchmarking.rs

* Apply suggestions from code review

* Rename

* Update primitives/arithmetic/src/traits.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* Reduce magic numbers

* Update frame/core-fellowship/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/core-fellowship/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Benchmark result

* Remove dependency

* set_params should pay

* induct should pay

* Remove some other free calls

---------

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>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
This commit is contained in:
Gavin Wood
2023-03-11 13:11:15 +01:00
committed by GitHub
parent 689c2f6d4e
commit 4ad1ad2c60
14 changed files with 1716 additions and 7 deletions
@@ -319,6 +319,24 @@ impl<T> TryMorph<T> for Identity {
}
}
/// Implementation of `Morph` which converts between types using `Into`.
pub struct MorphInto<T>(sp_std::marker::PhantomData<T>);
impl<T, A: Into<T>> Morph<A> for MorphInto<T> {
type Outcome = T;
fn morph(a: A) -> T {
a.into()
}
}
/// Implementation of `TryMorph` which attmepts to convert between types using `TryInto`.
pub struct TryMorphInto<T>(sp_std::marker::PhantomData<T>);
impl<T, A: TryInto<T>> TryMorph<A> for TryMorphInto<T> {
type Outcome = T;
fn try_morph(a: A) -> Result<T, ()> {
a.try_into().map_err(|_| ())
}
}
/// Create a `Morph` and/or `TryMorph` impls with a simple closure-like expression.
///
/// # Examples