EnsureOrigin is a frame abstraction - it should be in frame_support (#5521)

* EnsureOrigin is a frame abstraction - it should be in frame_support

* Fixes
This commit is contained in:
Gavin Wood
2020-04-04 12:58:05 +02:00
committed by GitHub
parent f0375a858f
commit 7c0fa83720
14 changed files with 48 additions and 45 deletions
+2 -2
View File
@@ -39,11 +39,11 @@
use sp_std::{prelude::*, result};
use sp_core::u32_trait::Value as U32;
use sp_runtime::RuntimeDebug;
use sp_runtime::traits::{Hash, EnsureOrigin};
use sp_runtime::traits::Hash;
use frame_support::weights::SimpleDispatchInfo;
use frame_support::{
dispatch::{Dispatchable, Parameter}, codec::{Encode, Decode},
traits::{Get, ChangeMembers, InitializeMembers}, decl_module, decl_event,
traits::{Get, ChangeMembers, InitializeMembers, EnsureOrigin}, decl_module, decl_event,
decl_storage, decl_error, ensure,
};
use frame_system::{self as system, ensure_signed, ensure_root};
@@ -19,9 +19,9 @@
use super::*;
use frame_benchmarking::{benchmarks, account};
use frame_support::traits::{Currency, Get};
use frame_support::traits::{Currency, Get, EnsureOrigin};
use frame_system::{RawOrigin, Module as System, self};
use sp_runtime::traits::{Bounded, EnsureOrigin, One};
use sp_runtime::traits::{Bounded, One};
use crate::Module as Democracy;
+2 -2
View File
@@ -166,7 +166,7 @@
use sp_std::prelude::*;
use sp_runtime::{
DispatchResult, DispatchError, RuntimeDebug,
traits::{Zero, EnsureOrigin, Hash, Dispatchable, Saturating},
traits::{Zero, Hash, Dispatchable, Saturating},
};
use codec::{Ref, Encode, Decode};
use frame_support::{
@@ -174,7 +174,7 @@ use frame_support::{
weights::{SimpleDispatchInfo, Weight, WeighData},
traits::{
Currency, ReservableCurrency, LockableCurrency, WithdrawReason, LockIdentifier, Get,
OnUnbalanced, BalanceStatus, schedule::Named as ScheduleNamed
OnUnbalanced, BalanceStatus, schedule::Named as ScheduleNamed, EnsureOrigin
}
};
use frame_system::{self as system, ensure_signed, ensure_root};
+2 -2
View File
@@ -70,10 +70,10 @@ use sp_std::{fmt::Debug, ops::Add, iter::once};
use enumflags2::BitFlags;
use codec::{Encode, Decode};
use sp_runtime::{DispatchResult, RuntimeDebug};
use sp_runtime::traits::{StaticLookup, EnsureOrigin, Zero, AppendZerosInput};
use sp_runtime::traits::{StaticLookup, Zero, AppendZerosInput};
use frame_support::{
decl_module, decl_event, decl_storage, ensure, decl_error,
traits::{Currency, ReservableCurrency, OnUnbalanced, Get, BalanceStatus},
traits::{Currency, ReservableCurrency, OnUnbalanced, Get, BalanceStatus, EnsureOrigin},
weights::SimpleDispatchInfo,
};
use frame_system::{self as system, ensure_signed, ensure_root};
+1 -2
View File
@@ -25,11 +25,10 @@
use sp_std::prelude::*;
use frame_support::{
decl_module, decl_storage, decl_event, decl_error,
traits::{ChangeMembers, InitializeMembers},
traits::{ChangeMembers, InitializeMembers, EnsureOrigin},
weights::SimpleDispatchInfo,
};
use frame_system::{self as system, ensure_root, ensure_signed};
use sp_runtime::traits::EnsureOrigin;
pub trait Trait<I=DefaultInstance>: frame_system::Trait {
/// The overarching event type.
+2 -2
View File
@@ -40,11 +40,11 @@
use sp_std::prelude::*;
use sp_runtime::{
traits::{StaticLookup, EnsureOrigin, Zero}
traits::{StaticLookup, Zero}
};
use frame_support::{
decl_module, decl_event, decl_storage, ensure, decl_error,
traits::{Currency, ReservableCurrency, OnUnbalanced, Get},
traits::{Currency, EnsureOrigin, ReservableCurrency, OnUnbalanced, Get},
weights::SimpleDispatchInfo,
};
use frame_system::{self as system, ensure_signed, ensure_root};
+2 -2
View File
@@ -96,12 +96,12 @@ use sp_std::{
};
use frame_support::{
decl_module, decl_storage, decl_event, ensure, decl_error,
traits::{ChangeMembers, InitializeMembers, Currency, Get, ReservableCurrency},
traits::{EnsureOrigin, ChangeMembers, InitializeMembers, Currency, Get, ReservableCurrency},
weights::{Weight, SimpleDispatchInfo, WeighData},
};
use frame_system::{self as system, ensure_root, ensure_signed};
use sp_runtime::{
traits::{EnsureOrigin, AtLeast32Bit, MaybeSerializeDeserialize, Zero, StaticLookup},
traits::{AtLeast32Bit, MaybeSerializeDeserialize, Zero, StaticLookup},
};
type BalanceOf<T, I> = <<T as Trait<I>>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::Balance;
+2 -2
View File
@@ -256,14 +256,14 @@ use codec::{Encode, Decode};
use sp_runtime::{Percent, ModuleId, RuntimeDebug,
traits::{
StaticLookup, AccountIdConversion, Saturating, Zero, IntegerSquareRoot, Hash,
TrailingZeroInput, CheckedSub, EnsureOrigin
TrailingZeroInput, CheckedSub
}
};
use frame_support::{decl_error, decl_module, decl_storage, decl_event, ensure, dispatch::DispatchResult};
use frame_support::weights::{SimpleDispatchInfo, Weight, WeighData};
use frame_support::traits::{
Currency, ReservableCurrency, Randomness, Get, ChangeMembers, BalanceStatus,
ExistenceRequirement::AllowDeath
ExistenceRequirement::AllowDeath, EnsureOrigin
};
use frame_system::{self as system, ensure_signed, ensure_root};
+2 -2
View File
@@ -278,7 +278,7 @@ use frame_support::{
dispatch::{IsSubType, DispatchResult},
traits::{
Currency, LockIdentifier, LockableCurrency, WithdrawReasons, OnUnbalanced, Imbalance, Get,
UnixTime, EstimateNextNewSession,
UnixTime, EstimateNextNewSession, EnsureOrigin,
}
};
use pallet_session::historical;
@@ -287,7 +287,7 @@ use sp_runtime::{
curve::PiecewiseLinear,
traits::{
Convert, Zero, StaticLookup, CheckedSub, Saturating, SaturatedConversion, AtLeast32Bit,
EnsureOrigin, SignedExtension,
SignedExtension,
},
transaction_validity::{
TransactionValidityError, TransactionValidity, ValidTransaction, InvalidTransaction,
+22 -3
View File
@@ -22,9 +22,10 @@ use sp_std::{prelude::*, result, marker::PhantomData, ops::Div, fmt::Debug};
use codec::{FullCodec, Codec, Encode, Decode, EncodeLike};
use sp_core::u32_trait::Value as U32;
use sp_runtime::{
RuntimeDebug,
ConsensusEngineId, DispatchResult, DispatchError,
traits::{MaybeSerializeDeserialize, AtLeast32Bit, Saturating, TrailingZeroInput, Bounded, Zero},
RuntimeDebug, ConsensusEngineId, DispatchResult, DispatchError, traits::{
MaybeSerializeDeserialize, AtLeast32Bit, Saturating, TrailingZeroInput, Bounded, Zero,
BadOrigin
},
};
use crate::dispatch::Parameter;
use crate::storage::StorageMap;
@@ -1237,6 +1238,24 @@ pub mod schedule {
}
}
/// Some sort of check on the origin is performed by this object.
pub trait EnsureOrigin<OuterOrigin> {
/// A return type.
type Success;
/// Perform the origin check.
fn ensure_origin(o: OuterOrigin) -> result::Result<Self::Success, BadOrigin> {
Self::try_origin(o).map_err(|_| BadOrigin)
}
/// Perform the origin check.
fn try_origin(o: OuterOrigin) -> result::Result<Self::Success, OuterOrigin>;
/// Returns an outer origin capable of passing `try_origin` check.
///
/// ** Should be used for benchmarking only!!! **
#[cfg(feature = "runtime-benchmarks")]
fn successful_origin() -> OuterOrigin;
}
#[cfg(test)]
mod tests {
use super::*;
+2 -2
View File
@@ -107,7 +107,7 @@ use sp_runtime::{
},
traits::{
self, CheckEqual, AtLeast32Bit, Zero, SignedExtension, Lookup, LookupError,
SimpleBitOps, Hash, Member, MaybeDisplay, EnsureOrigin, BadOrigin, SaturatedConversion,
SimpleBitOps, Hash, Member, MaybeDisplay, BadOrigin, SaturatedConversion,
MaybeSerialize, MaybeSerializeDeserialize, MaybeMallocSizeOf, StaticLookup, One, Bounded,
},
};
@@ -117,7 +117,7 @@ use frame_support::{
decl_module, decl_event, decl_storage, decl_error, storage, Parameter, ensure, debug,
traits::{
Contains, Get, ModuleToIndex, OnNewAccount, OnKilledAccount, IsDeadAccount, Happened,
StoredMap,
StoredMap, EnsureOrigin,
},
weights::{Weight, DispatchInfo, DispatchClass, SimpleDispatchInfo, FunctionOf},
};
+3 -1
View File
@@ -95,8 +95,10 @@ mod benchmarking;
use sp_std::{result, cmp};
use sp_inherents::{ProvideInherent, InherentData, InherentIdentifier};
#[cfg(feature = "std")]
use frame_support::debug;
use frame_support::{
Parameter, decl_storage, decl_module, debug,
Parameter, decl_storage, decl_module,
traits::{Time, UnixTime, Get},
weights::SimpleDispatchInfo,
};
+3 -2
View File
@@ -96,9 +96,10 @@ use frame_support::traits::{
ReservableCurrency, WithdrawReason
};
use sp_runtime::{Permill, ModuleId, Percent, RuntimeDebug, traits::{
Zero, EnsureOrigin, StaticLookup, AccountIdConversion, Saturating, Hash, BadOrigin
Zero, StaticLookup, AccountIdConversion, Saturating, Hash, BadOrigin
}};
use frame_support::{weights::{Weight, WeighData, SimpleDispatchInfo}, traits::Contains};
use frame_support::weights::{Weight, WeighData, SimpleDispatchInfo};
use frame_support::traits::{Contains, EnsureOrigin};
use codec::{Encode, Decode};
use frame_system::{self as system, ensure_signed, ensure_root};
+1 -19
View File
@@ -17,7 +17,7 @@
//! Primitives for the runtime modules.
use sp_std::prelude::*;
use sp_std::{self, result, marker::PhantomData, convert::{TryFrom, TryInto}, fmt::Debug};
use sp_std::{self, marker::PhantomData, convert::{TryFrom, TryInto}, fmt::Debug};
use sp_io;
#[cfg(feature = "std")]
use std::fmt::Display;
@@ -147,24 +147,6 @@ impl From<BadOrigin> for &'static str {
}
}
/// Some sort of check on the origin is performed by this object.
pub trait EnsureOrigin<OuterOrigin> {
/// A return type.
type Success;
/// Perform the origin check.
fn ensure_origin(o: OuterOrigin) -> result::Result<Self::Success, BadOrigin> {
Self::try_origin(o).map_err(|_| BadOrigin)
}
/// Perform the origin check.
fn try_origin(o: OuterOrigin) -> result::Result<Self::Success, OuterOrigin>;
/// Returns an outer origin capable of passing `try_origin` check.
///
/// ** Should be used for benchmarking only!!! **
#[cfg(feature = "runtime-benchmarks")]
fn successful_origin() -> OuterOrigin;
}
/// An error that indicates that a lookup failed.
#[derive(Encode, Decode, RuntimeDebug)]
pub struct LookupError;