mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 11:38:01 +00:00
Frame: Agile Coretime Broker pallet (RFC-1) (#14568)
* Add Broker pallet * Flesh out CorePart * Repotting and fleshing out * more drafting * process timeslice * Test Fungibles completed * Auctions * Price morphing * First tests * Tidying up config/status * Docs * Timeslice todying * More Timeslice tidying * Tests] * Repotting. * Tests * Tests * System InstaPool cores and payout * Better Relay Test framework * Tests and instapool fixes * Support NFT interface * Proper renewals * Better events, results * Test transfer * Renewal test * Repot some impls and make dispatchables. * Better weight * Test migration * Document events * Introduce durations * Core count * Allow reassignment * Better naming * Error docs * Docs * Formatting * Advance notice period is in RC blocks, not timeslices * Docs * Formatting * Docs * Missing file * Added some events * Events for all dispatchables * Remove benchmark * Fix * Adds benchmark for configure and some basic setup * Adds benchmark for reserve and unreserve * Adds a couple of more benchmarks * Docs * Event * Fix * Adds benchmark for purchase * Dedup * Add some weight breakdowns * Repotting * Adds more benchmarks * Renaming and one more event * Sale event * Better price API and docs * Avoid possibility of clobbering renewal record * Avoid possibility of clobbering renewal record * Fixes a few benchmarks * Another test * More tests * Drop history test * Rename and CORE_MASK_BITS constant * Update frame/broker/src/dispatchable_impls.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/broker/src/dispatchable_impls.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/broker/src/dispatchable_impls.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/broker/src/utility_impls.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/broker/src/dispatchable_impls.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/broker/src/mock.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Addresses few review comments * Addresses few review comments * Addresses few review comments * Merge * Merge * ".git/.scripts/commands/fmt/fmt.sh" * Integrates broker in kitchensink * Minor update * Fixes typo * Moves balance back to u64 * Fixes kitchensink build * Fixes worst case for assign * Adds benchmark for process_core_count * Adds a couple of more benchmarks * Adds an assert for partition * Uses max_timeslices as input in claim_revenue benchmark * Adds benchmark for drop_renewal * Adds benchmark for process_core_schedule * Adds benchmark for process_pool * Adds assertion for transfer * Fixes benchmark for broker in kitchensink * Adds todo for process_revenue benchmark * Minor update * Fix for pool revenue history * remove TODOs * Fix tests * Document CoretimeInterface * rename part to mask * Fixes * Grumble * ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --pallet=pallet_broker * Adds benchmark for drop_history and fixes worst case for claim_revenue * Adds drop_history in WeightInfo * ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --pallet=pallet_broker * Minor fix for Quick Benchmark CI * Fixes * Docs * Headers * Expose a couple of APIs for benchmarking (#14688) * Expose a couple of APIs for benchmarking * Adds doc * Minor fix in CoretimeInterface impl for kitchensik * Minor * Cap renewal price * Adds a few tests * Adds more tests * Minor updates * Adds a test for an edge case * Fixes feature propagation * Fixes feature propagation * Adds doc fix * Syntax nits Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Reuse Bit assign functions Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Bitwise tests Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * adapt_price: Edge case for sold == target Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Add sanity checking to ConfigRecord Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Add deny(missing_docs) where possible Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * partition: forbid pivot_offset == 0 Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Sort features zepter format features Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Import Zero from new location Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Clippy: remove redundant clone Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * try to fix build Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix CI Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> --------- Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Nikhil Gupta <17176722+gupnik@users.noreply.github.com> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: command-bot <>
This commit is contained in:
@@ -37,9 +37,35 @@ pub trait EnsureOrigin<OuterOrigin> {
|
||||
Self::try_origin(o).map_err(|_| BadOrigin)
|
||||
}
|
||||
|
||||
/// The same as `ensure_origin` except that Root origin will always pass. This can only be
|
||||
/// used if `Success` has a sensible impl of `Default` since that will be used in the result.
|
||||
fn ensure_origin_or_root(o: OuterOrigin) -> Result<Option<Self::Success>, BadOrigin>
|
||||
where
|
||||
OuterOrigin: OriginTrait,
|
||||
{
|
||||
if o.caller().is_root() {
|
||||
return Ok(None)
|
||||
} else {
|
||||
Self::ensure_origin(o).map(Some)
|
||||
}
|
||||
}
|
||||
|
||||
/// Perform the origin check.
|
||||
fn try_origin(o: OuterOrigin) -> Result<Self::Success, OuterOrigin>;
|
||||
|
||||
/// The same as `try_origin` except that Root origin will always pass. This can only be
|
||||
/// used if `Success` has a sensible impl of `Default` since that will be used in the result.
|
||||
fn try_origin_or_root(o: OuterOrigin) -> Result<Option<Self::Success>, OuterOrigin>
|
||||
where
|
||||
OuterOrigin: OriginTrait,
|
||||
{
|
||||
if o.caller().is_root() {
|
||||
return Ok(None)
|
||||
} else {
|
||||
Self::try_origin(o).map(Some)
|
||||
}
|
||||
}
|
||||
|
||||
/// Attempt to get an outer origin capable of passing `try_origin` check. May return `Err` if it
|
||||
/// is impossible.
|
||||
///
|
||||
|
||||
@@ -52,8 +52,10 @@ pub trait Inspect<AccountId>: super::Inspect<AccountId> {
|
||||
/// restrictions on the minimum amount of the account. Note: This cannot bring the account into
|
||||
/// an inconsistent state with regards any required existential deposit.
|
||||
///
|
||||
/// Always less than `total_balance_on_hold()`.
|
||||
fn reducible_total_balance_on_hold(who: &AccountId, force: Fortitude) -> Self::Balance;
|
||||
/// Never more than `total_balance_on_hold()`.
|
||||
fn reducible_total_balance_on_hold(who: &AccountId, _force: Fortitude) -> Self::Balance {
|
||||
Self::total_balance_on_hold(who)
|
||||
}
|
||||
|
||||
/// Amount of funds on hold (for the given reason) of `who`.
|
||||
fn balance_on_hold(reason: &Self::Reason, who: &AccountId) -> Self::Balance;
|
||||
@@ -65,7 +67,9 @@ pub trait Inspect<AccountId>: super::Inspect<AccountId> {
|
||||
/// NOTE: This does not take into account changes which could be made to the account of `who`
|
||||
/// (such as removing a provider reference) after this call is made. Any usage of this should
|
||||
/// therefore ensure the account is already in the appropriate state prior to calling it.
|
||||
fn hold_available(reason: &Self::Reason, who: &AccountId) -> bool;
|
||||
fn hold_available(_reason: &Self::Reason, _who: &AccountId) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
/// Check to see if some `amount` of funds of `who` may be placed on hold with the given
|
||||
/// `reason`. Reasons why this may not be true:
|
||||
|
||||
@@ -52,12 +52,14 @@ pub trait Inspect<AccountId>: super::Inspect<AccountId> {
|
||||
/// restrictions on the minimum amount of the account. Note: This cannot bring the account into
|
||||
/// an inconsistent state with regards any required existential deposit.
|
||||
///
|
||||
/// Always less than `total_balance_on_hold()`.
|
||||
/// Never more than `total_balance_on_hold()`.
|
||||
fn reducible_total_balance_on_hold(
|
||||
asset: Self::AssetId,
|
||||
who: &AccountId,
|
||||
force: Fortitude,
|
||||
) -> Self::Balance;
|
||||
_force: Fortitude,
|
||||
) -> Self::Balance {
|
||||
Self::total_balance_on_hold(asset, who)
|
||||
}
|
||||
|
||||
/// Amount of funds on hold (for the given reason) of `who`.
|
||||
fn balance_on_hold(
|
||||
@@ -73,7 +75,9 @@ pub trait Inspect<AccountId>: super::Inspect<AccountId> {
|
||||
/// NOTE: This does not take into account changes which could be made to the account of `who`
|
||||
/// (such as removing a provider reference) after this call is made. Any usage of this should
|
||||
/// therefore ensure the account is already in the appropriate state prior to calling it.
|
||||
fn hold_available(asset: Self::AssetId, reason: &Self::Reason, who: &AccountId) -> bool;
|
||||
fn hold_available(_asset: Self::AssetId, _reason: &Self::Reason, _who: &AccountId) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
/// Check to see if some `amount` of funds of `who` may be placed on hold with the given
|
||||
/// `reason`. Reasons why this may not be true:
|
||||
|
||||
Reference in New Issue
Block a user