Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate fee payment from Currency to fungible #2292

Merged
merged 50 commits into from
Apr 4, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
319838d
create FungibleAdapter
liamaharon Nov 13, 2023
9958cd2
allow deprecated
liamaharon Nov 13, 2023
47a02b4
convert weight trader to fungible
liamaharon Nov 15, 2023
bdbeea0
migrate to fungibleadapter
liamaharon Nov 16, 2023
b8d1575
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 16, 2023
f12e6a8
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 20, 2023
f695948
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 20, 2023
bbb4b0c
deprecate ToStakingPot and use ResolveTo
liamaharon Nov 21, 2023
5a8e1d7
update mock
liamaharon Nov 21, 2023
ed3a077
update mock
liamaharon Nov 21, 2023
360ceb1
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 23, 2023
98f2878
use fungible adapter in test runtime
liamaharon Nov 23, 2023
e0bc520
fix treasury on unbalanced usage
liamaharon Nov 23, 2023
78819c3
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 23, 2023
2a66ec5
remove unused imports
liamaharon Nov 23, 2023
230fd83
Merge branch 'liam-currency-adapter-fungible' of github.com:paritytec…
liamaharon Nov 23, 2023
6558225
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 24, 2023
6341e2a
fix imports
liamaharon Nov 24, 2023
dc0ecc9
remove unnecesarry comment
liamaharon Nov 24, 2023
e60f53d
add deprecated item removal date
liamaharon Nov 24, 2023
a41246a
fix traits
liamaharon Nov 24, 2023
f3ce8cd
fix collectives westend
liamaharon Nov 24, 2023
957dd6c
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Nov 24, 2023
bb47578
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 16, 2024
4f34664
finish merge
liamaharon Jan 16, 2024
3132975
format
liamaharon Jan 16, 2024
6293000
soft deprecate
liamaharon Jan 16, 2024
ef9d85a
update people westend and coretime westend runtimes
liamaharon Jan 16, 2024
f03fe17
prdoc
liamaharon Jan 16, 2024
49ac6eb
remove fellowship runtimes
liamaharon Jan 16, 2024
a633271
fix prdoc
liamaharon Jan 16, 2024
1b910c7
fix rustdoc link
liamaharon Jan 16, 2024
e5fde06
fix refund doesn't create new acc
liamaharon Jan 16, 2024
bf592df
doc link
liamaharon Jan 16, 2024
a4db3ef
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 17, 2024
8e3fb18
clippy
liamaharon Jan 17, 2024
b164843
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 19, 2024
18de1fd
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 23, 2024
1f93eaa
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 26, 2024
234a82e
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Jan 29, 2024
4121a9e
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Apr 4, 2024
78c6086
fix
liamaharon Apr 4, 2024
d0de2fd
clean up after merge
liamaharon Apr 4, 2024
2dfafec
remove parachain template
liamaharon Apr 4, 2024
a6ec2a5
update prdoc
liamaharon Apr 4, 2024
8b2bf1e
clippy
liamaharon Apr 4, 2024
3402af4
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Apr 4, 2024
d749035
remove redundant trait bound
liamaharon Apr 4, 2024
201e7cd
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Apr 4, 2024
1e738c0
Merge branch 'master' into liam-currency-adapter-fungible
liamaharon Apr 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bridges/bin/runtime-common/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ impl pallet_balances::Config for TestRuntime {
}

impl pallet_transaction_payment::Config for TestRuntime {
type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter<Balances, ()>;
type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter<Balances, ()>;
type OperationalFeeMultiplier = ConstU8<5>;
type WeightToFee = IdentityFee<ThisChainBalance>;
type LengthToFee = ConstantMultiplier<ThisChainBalance, TransactionByteFee>;
Expand Down
16 changes: 16 additions & 0 deletions cumulus/pallets/collator-selection/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@

#![cfg_attr(not(feature = "std"), no_std)]

use core::marker::PhantomData;

use frame_support::traits::TypedGet;
pub use pallet::*;

#[cfg(test)]
Expand Down Expand Up @@ -982,3 +985,16 @@ pub mod pallet {
}
}
}

/// TypedGet implementaion to get the AccountId of the StakingPot.
/// QUESTION: is there a better way to do this?
liamaharon marked this conversation as resolved.
Show resolved Hide resolved
pub struct StakingPotAccountId<R>(PhantomData<R>);
liamaharon marked this conversation as resolved.
Show resolved Hide resolved
impl<R> TypedGet for StakingPotAccountId<R>
where
R: crate::Config + frame_system::Config,
liamaharon marked this conversation as resolved.
Show resolved Hide resolved
{
type Type = <R as frame_system::Config>::AccountId;
fn get() -> Self::Type {
<crate::Pallet<R>>::account_id()
}
}
liamaharon marked this conversation as resolved.
Show resolved Hide resolved
45 changes: 28 additions & 17 deletions cumulus/parachains/common/src/impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,51 +17,56 @@
//! Taken from polkadot/runtime/common (at a21cd64) and adapted for parachains.

use frame_support::traits::{
fungibles::{self, Balanced, Credit},
Contains, ContainsPair, Currency, Get, Imbalance, OnUnbalanced,
tokens::imbalance::ResolveTo, Contains, ContainsPair, Currency, Defensive, Get, Imbalance,
OnUnbalanced,
};
use pallet_asset_tx_payment::HandleCredit;
use pallet_collator_selection::StakingPotAccountId;
use sp_runtime::traits::Zero;
use sp_std::marker::PhantomData;
use xcm::latest::{AssetId, Fungibility::Fungible, MultiAsset, MultiLocation};

/// 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;

/// Type alias to conveniently refer to `frame_system`'s `Config::AccountId`.
pub type AccountIdOf<R> = <R as frame_system::Config>::AccountId;

/// Implementation of `OnUnbalanced` that deposits the fees into a staking pot for later payout.
#[deprecated(
note = "ToStakingPot is deprecated and will be removed after March 2024. Please use frame_support::traits::tokens::imbalance::ResolveTo instead."
)]
pub struct ToStakingPot<R>(PhantomData<R>);
impl<R> OnUnbalanced<NegativeImbalance<R>> for ToStakingPot<R>
#[allow(deprecated)]
impl<R> OnUnbalanced<fungible::Credit<R::AccountId, pallet_balances::Pallet<R>>> for ToStakingPot<R>
liamaharon marked this conversation as resolved.
Show resolved Hide resolved
where
R: pallet_balances::Config + pallet_collator_selection::Config,
AccountIdOf<R>: From<polkadot_primitives::AccountId> + Into<polkadot_primitives::AccountId>,
<R as frame_system::Config>::RuntimeEvent: From<pallet_balances::Event<R>>,
{
fn on_nonzero_unbalanced(amount: NegativeImbalance<R>) {
fn on_nonzero_unbalanced(amount: fungible::Credit<R::AccountId, pallet_balances::Pallet<R>>) {
let staking_pot = <pallet_collator_selection::Pallet<R>>::account_id();
<pallet_balances::Pallet<R>>::resolve_creating(&staking_pot, amount);
// In case of error: Will drop the result triggering the `OnDrop` of the imbalance.
let _ = <pallet_balances::Pallet<R>>::resolve(&staking_pot, amount).defensive();
}
}

/// Implementation of `OnUnbalanced` that deals with the fees by combining tip and fee and passing
/// the result on to `ToStakingPot`.
pub struct DealWithFees<R>(PhantomData<R>);
impl<R> OnUnbalanced<NegativeImbalance<R>> for DealWithFees<R>
impl<R> OnUnbalanced<fungible::Credit<R::AccountId, pallet_balances::Pallet<R>>> for DealWithFees<R>
where
R: pallet_balances::Config + pallet_collator_selection::Config,
AccountIdOf<R>: From<polkadot_primitives::AccountId> + Into<polkadot_primitives::AccountId>,
<R as frame_system::Config>::RuntimeEvent: From<pallet_balances::Event<R>>,
{
fn on_unbalanceds<B>(mut fees_then_tips: impl Iterator<Item = NegativeImbalance<R>>) {
fn on_unbalanceds<B>(
mut fees_then_tips: impl Iterator<
Item = fungible::Credit<R::AccountId, pallet_balances::Pallet<R>>,
>,
) {
if let Some(mut fees) = fees_then_tips.next() {
if let Some(tips) = fees_then_tips.next() {
tips.merge_into(&mut fees);
}
<ToStakingPot<R> as OnUnbalanced<_>>::on_unbalanced(fees);
ResolveTo::<StakingPotAccountId<R>, pallet_balances::Pallet<R>>::on_unbalanced(fees)
}
}
}
Expand All @@ -75,10 +80,10 @@ where
R: pallet_authorship::Config + pallet_assets::Config<I>,
AccountIdOf<R>: From<polkadot_primitives::AccountId> + Into<polkadot_primitives::AccountId>,
{
fn handle_credit(credit: Credit<AccountIdOf<R>, pallet_assets::Pallet<R, I>>) {
fn handle_credit(credit: fungibles::Credit<AccountIdOf<R>, pallet_assets::Pallet<R, I>>) {
if let Some(author) = pallet_authorship::Pallet::<R>::author() {
// In case of error: Will drop the result triggering the `OnDrop` of the imbalance.
let _ = pallet_assets::Pallet::<R, I>::resolve(&author, credit);
let _ = pallet_assets::Pallet::<R, I>::resolve(&author, credit).defensive();
}
}
}
Expand Down Expand Up @@ -251,8 +256,14 @@ mod tests {
#[test]
fn test_fees_and_tip_split() {
new_test_ext().execute_with(|| {
let fee = Balances::issue(10);
let tip = Balances::issue(20);
let fee =
<pallet_balances::Pallet<Test> as frame_support::traits::fungible::Balanced<
AccountId,
>>::issue(10);
let tip =
<pallet_balances::Pallet<Test> as frame_support::traits::fungible::Balanced<
AccountId,
>>::issue(20);

assert_eq!(Balances::free_balance(TEST_ACCOUNT), 0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ use assets_common::{
};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess},
traits::{
tokens::imbalance::ResolveTo, ConstU32, Contains, Everything, Nothing, PalletInfoAccess,
},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{
impls::ToStakingPot,
Expand Down Expand Up @@ -500,7 +503,13 @@ impl xcm_executor::Config for XcmConfig {
MaxInstructions,
>;
type Trader = (
UsingComponents<WeightToFee, KsmLocation, AccountId, Balances, ToStakingPot<Runtime>>,
UsingComponents<
WeightToFee,
KsmLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>,
cumulus_primitives_utility::TakeFirstAssetTrader<
AccountId,
AssetFeeAsExistentialDepositMultiplierFeeCharger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ use super::{
use assets_common::matching::{FromSiblingParachain, IsForeignConcreteAsset};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess},
traits::{
tokens::imbalance::ResolveTo, ConstU32, Contains, Everything, Nothing, PalletInfoAccess,
},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{
impls::ToStakingPot,
xcm_config::{AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem},
use parachains_common::xcm_config::{
AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem,
};
use polkadot_parachain_primitives::primitives::Sibling;
use polkadot_runtime_common::xcm_sender::ExponentialPrice;
Expand Down Expand Up @@ -424,7 +426,13 @@ impl xcm_executor::Config for XcmConfig {
MaxInstructions,
>;
type Trader = (
UsingComponents<WeightToFee, DotLocation, AccountId, Balances, ToStakingPot<Runtime>>,
UsingComponents<
WeightToFee,
DotLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>,
cumulus_primitives_utility::TakeFirstAssetTrader<
AccountId,
AssetFeeAsExistentialDepositMultiplierFeeCharger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,15 @@ use assets_common::{
};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Equals, Everything, Nothing, PalletInfoAccess},
traits::{
tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing,
PalletInfoAccess,
},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{
impls::ToStakingPot,
xcm_config::{
AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem,
RelayOrOtherSystemParachains,
Expand Down Expand Up @@ -562,7 +565,13 @@ impl xcm_executor::Config for XcmConfig {
MaxInstructions,
>;
type Trader = (
UsingComponents<WeightToFee, TokenLocation, AccountId, Balances, ToStakingPot<Runtime>>,
UsingComponents<
WeightToFee,
TokenLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>,
// This trader allows to pay with `is_sufficient=true` "Trust Backed" assets from dedicated
// `pallet_assets` instance - `Assets`.
cumulus_primitives_utility::TakeFirstAssetTrader<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
type FeeMultiplierUpdate = SlowAdjustingFeeUpdate<Self>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,15 @@ use assets_common::{
};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Equals, Everything, Nothing, PalletInfoAccess},
traits::{
tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing,
PalletInfoAccess,
},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{
impls::ToStakingPot,
xcm_config::{
AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem,
RelayOrOtherSystemParachains,
Expand Down Expand Up @@ -568,7 +571,13 @@ impl xcm_executor::Config for XcmConfig {
MaxInstructions,
>;
type Trader = (
UsingComponents<WeightToFee, WestendLocation, AccountId, Balances, ToStakingPot<Runtime>>,
UsingComponents<
WeightToFee,
WestendLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>,
// This trader allows to pay with `is_sufficient=true` "Trust Backed" assets from dedicated
// `pallet_assets` instance - `Assets`.
cumulus_primitives_utility::TakeFirstAssetTrader<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type OperationalFeeMultiplier = ConstU8<5>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ use super::{
};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Everything, Nothing},
traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Everything, Nothing},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem};
use parachains_common::xcm_config::ConcreteAssetFromSystem;
use polkadot_parachain_primitives::primitives::Sibling;
use polkadot_runtime_common::xcm_sender::ExponentialPrice;
use xcm::latest::prelude::*;
Expand Down Expand Up @@ -200,8 +201,13 @@ impl xcm_executor::Config for XcmConfig {
RuntimeCall,
MaxInstructions,
>;
type Trader =
UsingComponents<WeightToFee, KsmRelayLocation, AccountId, Balances, ToStakingPot<Runtime>>;
type Trader = UsingComponents<
WeightToFee,
KsmRelayLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>;
type ResponseHandler = PolkadotXcm;
type AssetTrap = PolkadotXcm;
type AssetClaims = PolkadotXcm;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type OperationalFeeMultiplier = ConstU8<5>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ use super::{
};
use frame_support::{
match_types, parameter_types,
traits::{ConstU32, Contains, Everything, Nothing},
traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Everything, Nothing},
};
use frame_system::EnsureRoot;
use pallet_collator_selection::StakingPotAccountId;
use pallet_xcm::XcmPassthrough;
use parachains_common::{impls::ToStakingPot, xcm_config::ConcreteAssetFromSystem};
use parachains_common::xcm_config::ConcreteAssetFromSystem;
use polkadot_parachain_primitives::primitives::Sibling;
use polkadot_runtime_common::xcm_sender::ExponentialPrice;
use xcm::latest::prelude::*;
Expand Down Expand Up @@ -204,8 +205,13 @@ impl xcm_executor::Config for XcmConfig {
RuntimeCall,
MaxInstructions,
>;
type Trader =
UsingComponents<WeightToFee, DotRelayLocation, AccountId, Balances, ToStakingPot<Runtime>>;
type Trader = UsingComponents<
WeightToFee,
DotRelayLocation,
AccountId,
Balances,
ResolveTo<StakingPotAccountId<Runtime>, Balances>,
>;
type ResponseHandler = PolkadotXcm;
type AssetTrap = PolkadotXcm;
type AssetClaims = PolkadotXcm;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ parameter_types! {
impl pallet_transaction_payment::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type OnChargeTransaction =
pallet_transaction_payment::CurrencyAdapter<Balances, DealWithFees<Runtime>>;
pallet_transaction_payment::FungibleAdapter<Balances, DealWithFees<Runtime>>;
type OperationalFeeMultiplier = ConstU8<5>;
type WeightToFee = WeightToFee;
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
Expand Down
Loading