Improve PaysFee trait and dispatch info logic in utility module (#4606)

* pass target to PaysFee trait and allow batch call to be free if all its calls are free

* bump version

* fix error
This commit is contained in:
Xiliang Chen
2020-01-13 20:48:34 +13:00
committed by Gavin Wood
parent af4ddd2dff
commit 507909c3be
6 changed files with 39 additions and 29 deletions
+4 -4
View File
@@ -78,8 +78,8 @@ pub trait WeighBlock<BlockNumber> {
/// Indicates if dispatch function should pay fees or not.
/// If set to false, the block resource limits are applied, yet no fee is deducted.
pub trait PaysFee {
fn pays_fee(&self) -> bool {
pub trait PaysFee<T> {
fn pays_fee(&self, _target: T) -> bool {
true
}
}
@@ -208,8 +208,8 @@ impl<T> ClassifyDispatch<T> for SimpleDispatchInfo {
}
}
impl PaysFee for SimpleDispatchInfo {
fn pays_fee(&self) -> bool {
impl<T> PaysFee<T> for SimpleDispatchInfo {
fn pays_fee(&self, _: T) -> bool {
match self {
SimpleDispatchInfo::FixedNormal(_) => true,
SimpleDispatchInfo::MaxNormal => true,