-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
backport updates in fellows/runtimes
- Loading branch information
Showing
11 changed files
with
376 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
45 changes: 45 additions & 0 deletions
45
polkadot-parachains/encointer-runtime/src/deal_with_fees.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copyright (c) 2023 Encointer Association | ||
// This file is part of Encointer | ||
// | ||
// Encointer is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
// | ||
// Encointer is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with Encointer. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
use frame_support::traits::{Currency, Imbalance, OnUnbalanced}; | ||
use sp_runtime::sp_std::marker::PhantomData; | ||
|
||
/// Type alias to conveniently refer to the `Currency::NegativeImbalance` associated type. | ||
pub type NegativeImbalance<T> = <pallet_balances::Pallet<T> as Currency< | ||
<T as frame_system::Config>::AccountId, | ||
>>::NegativeImbalance; | ||
|
||
/// Moves all the fees to the treasury. | ||
/// | ||
/// This does only handle the native currency. The community currencies are managed by the | ||
/// `pallet-asset-tx-payment`. | ||
pub struct FeesToTreasury<Runtime>(PhantomData<Runtime>); | ||
|
||
impl<Runtime> OnUnbalanced<NegativeImbalance<Runtime>> for FeesToTreasury<Runtime> | ||
where | ||
Runtime: pallet_balances::Config + pallet_treasury::Config, | ||
{ | ||
fn on_unbalanceds<B>(mut fees_then_tips: impl Iterator<Item = NegativeImbalance<Runtime>>) { | ||
if let Some(mut fees) = fees_then_tips.next() { | ||
// no burning, add all fees and tips to the treasury | ||
|
||
if let Some(tips) = fees_then_tips.next() { | ||
tips.merge_into(&mut fees); | ||
} | ||
<FeesToTreasury<Runtime> as OnUnbalanced<_>>::on_unbalanced(fees); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
polkadot-parachains/encointer-runtime/src/weights/block_weights.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
// This file is part of Substrate. | ||
|
||
// Copyright (C) Parity Technologies (UK) Ltd. | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
pub mod constants { | ||
use frame_support::{ | ||
parameter_types, | ||
weights::{constants, Weight}, | ||
}; | ||
|
||
parameter_types! { | ||
/// Importing a block with 0 Extrinsics. | ||
pub const BlockExecutionWeight: Weight = | ||
Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); | ||
} | ||
|
||
#[cfg(test)] | ||
mod test_weights { | ||
use frame_support::weights::constants; | ||
|
||
/// Checks that the weight exists and is sane. | ||
// NOTE: If this test fails but you are sure that the generated values are fine, | ||
// you can delete it. | ||
#[test] | ||
fn sane() { | ||
let w = super::constants::BlockExecutionWeight::get(); | ||
|
||
// At least 100 µs. | ||
assert!( | ||
w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, | ||
"Weight should be at least 100 µs." | ||
); | ||
// At most 50 ms. | ||
assert!( | ||
w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, | ||
"Weight should be at most 50 ms." | ||
); | ||
} | ||
} | ||
} |
53 changes: 53 additions & 0 deletions
53
polkadot-parachains/encointer-runtime/src/weights/extrinsic_weights.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
// This file is part of Substrate. | ||
|
||
// Copyright (C) Parity Technologies (UK) Ltd. | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
pub mod constants { | ||
use frame_support::{ | ||
parameter_types, | ||
weights::{constants, Weight}, | ||
}; | ||
|
||
parameter_types! { | ||
/// Executing a NO-OP `System::remarks` Extrinsic. | ||
pub const ExtrinsicBaseWeight: Weight = | ||
Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); | ||
} | ||
|
||
#[cfg(test)] | ||
mod test_weights { | ||
use frame_support::weights::constants; | ||
|
||
/// Checks that the weight exists and is sane. | ||
// NOTE: If this test fails but you are sure that the generated values are fine, | ||
// you can delete it. | ||
#[test] | ||
fn sane() { | ||
let w = super::constants::ExtrinsicBaseWeight::get(); | ||
|
||
// At least 10 µs. | ||
assert!( | ||
w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, | ||
"Weight should be at least 10 µs." | ||
); | ||
// At most 1 ms. | ||
assert!( | ||
w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, | ||
"Weight should be at most 1 ms." | ||
); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.