Skip to content
Snippets Groups Projects

Replace bool by Result<(), dispatchError> for checks

Merged Hugo Trentesaux requested to merge hugo-issue-90 into master
All threads resolved!
6 files
+ 51
82
Compare changes
  • Side-by-side
  • Inline

Files

+ 29
19
@@ -97,6 +97,12 @@ pub mod pallet {
#[pallet::error]
pub enum Error<T, I = ()> {
/// Identity not allowed to claim membership
IdtyNotAllowedToClaimMembership,
/// Identity not allowed to request membership
IdtyNotAllowedToRequestMembership,
/// Identity not allowed to renew membership
IdtyNotAllowedToRenewMembership,
/// Identity creation period not respected
IdtyCreationPeriodNotRespected,
/// Not enough received certifications to create identity
@@ -215,36 +221,40 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::CheckCertAllowed<Id
}
}
impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToClaimMembership<IdtyIndex>
impl<T: Config<I>, I: 'static> sp_membership::traits::CheckIdtyAllowedMembership<IdtyIndex>
for Pallet<T, I>
{
fn is_idty_allowed_to_claim_membership(idty_index: &IdtyIndex) -> bool {
fn check_idty_allowed_to_claim_membership(idty_index: &IdtyIndex) -> Result<(), DispatchError> {
let idty_cert_meta = pallet_certification::Pallet::<T, I>::idty_cert_meta(idty_index);
idty_cert_meta.received_count >= T::MinCertForMembership::get() as u32
ensure!(
idty_cert_meta.received_count >= T::MinCertForMembership::get() as u32,
Error::<T, I>::IdtyNotAllowedToClaimMembership
);
Ok(())
}
}
impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToRenewMembership<IdtyIndex>
for Pallet<T, I>
{
fn is_idty_allowed_to_renew_membership(idty_index: &IdtyIndex) -> bool {
fn check_idty_allowed_to_renew_membership(idty_index: &IdtyIndex) -> Result<(), DispatchError> {
if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) {
idty_value.status == IdtyStatus::Validated
} else {
false
ensure!(
idty_value.status == IdtyStatus::Validated,
Error::<T, I>::IdtyNotAllowedToRenewMembership
);
}
// FIXME what if identity not found?
Ok(())
}
}
impl<T: Config<I>, I: 'static> sp_membership::traits::IsIdtyAllowedToRequestMembership<IdtyIndex>
for Pallet<T, I>
{
fn is_idty_allowed_to_request_membership(idty_index: &IdtyIndex) -> bool {
fn check_idty_allowed_to_request_membership(
idty_index: &IdtyIndex,
) -> Result<(), DispatchError> {
if let Some(idty_value) = pallet_identity::Pallet::<T>::identity(idty_index) {
T::IsSubWot::get() && idty_value.status == IdtyStatus::Validated
} else {
false
ensure!(
T::IsSubWot::get() && idty_value.status == IdtyStatus::Validated,
Error::<T, I>::IdtyNotAllowedToRequestMembership
);
}
// FIXME what if identity not found?
Ok(())
}
}
Loading