Skip to content
Snippets Groups Projects

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

Merged Hugo Trentesaux requested to merge hugo-issue-90 into master
7 files
+ 48
64
Compare changes
  • Side-by-side
  • Inline

Files

+ 36
52
@@ -117,10 +117,8 @@ pub mod pallet {
IssuerCanNotEmitCert,
/// Can not issue cert to unconfirmed identity
CertToUnconfirmedIdty,
/// Issuer not found
IssuerNotFound,
/// Receiver not found
ReceiverNotFound,
/// Issuer or receiver not found
IdtyNotFound,
}
}
@@ -132,7 +130,6 @@ where
fn check_create_identity(creator: IdtyIndex) -> Result<(), DispatchError> {
if !T::IsSubWot::get() {
let cert_meta = pallet_certification::Pallet::<T, I>::idty_cert_meta(creator);
// perform all checks
ensure!(
cert_meta.received_count >= T::MinCertForCreateIdtyRight::get(),
@@ -146,63 +143,50 @@ where
cert_meta.next_issuable_on <= frame_system::pallet::Pallet::<T>::block_number(),
Error::<T, I>::IdtyCreationPeriodNotRespected
);
// all checks passed
Ok(())
} else {
// sub wot can always create identity (why?)
Ok(())
}
Ok(())
}
fn check_confirm_identity(idty_index: IdtyIndex) -> Result<(), DispatchError> {
if !T::IsSubWot::get() {
match pallet_membership::Pallet::<T, I>::force_request_membership(
pallet_membership::Pallet::<T, I>::force_request_membership(
RawOrigin::Root.into(),
idty_index,
Default::default(),
) {
Ok(_) => Ok(()),
Err(e) => Err(e.error), // return error from inner function
}
} else {
Ok(())
)
.map_err(|e| e.error)?;
}
Ok(())
}
fn check_validate_identity(idty_index: IdtyIndex) -> Result<(), DispatchError> {
if !T::IsSubWot::get() {
// TODO replace this code by the commented one for distance feature
/*let idty_cert_meta = pallet_certification::Pallet::<T, I>::idty_cert_meta(idty_index);
idty_cert_meta.received_count >= T::MinCertForMembership::get() as u32*/
match pallet_membership::Pallet::<T, I>::claim_membership(
pallet_membership::Pallet::<T, I>::claim_membership(
RawOrigin::Root.into(),
Some(idty_index),
) {
Ok(_) => Ok(()),
Err(e) => Err(e.error),
}
} else {
Ok(())
)
.map_err(|e| e.error)?;
}
Ok(())
}
fn check_change_identity_address(idty_index: IdtyIndex) -> Result<(), DispatchError> {
if T::IsSubWot::get() {
match pallet_membership::Pallet::<T, I>::is_member(&idty_index) {
true => Err(Error::<T, I>::NotAllowedToChangeIdtyAddress.into()),
false => Ok(()),
}
} else {
Ok(())
ensure!(
!pallet_membership::Pallet::<T, I>::is_member(&idty_index),
Error::<T, I>::NotAllowedToChangeIdtyAddress
);
}
Ok(())
}
fn check_remove_identity(idty_index: IdtyIndex) -> Result<(), DispatchError> {
if T::IsSubWot::get() {
match pallet_membership::Pallet::<T, I>::is_member(&idty_index) {
true => Err(Error::<T, I>::NotAllowedToRemoveIdty.into()),
false => Ok(()),
}
} else {
Ok(())
ensure!(
!pallet_membership::Pallet::<T, I>::is_member(&idty_index),
Error::<T, I>::NotAllowedToRemoveIdty
);
}
Ok(())
}
}
@@ -210,27 +194,27 @@ impl<T: Config<I>, I: 'static> pallet_certification::traits::CheckCertAllowed<Id
for Pallet<T, I>
{
fn check_cert_allowed(issuer: IdtyIndex, receiver: IdtyIndex) -> Result<(), DispatchError> {
match pallet_identity::Pallet::<T>::identity(issuer) {
Some(issuer_data) => ensure!(
if let Some(issuer_data) = pallet_identity::Pallet::<T>::identity(issuer) {
ensure!(
issuer_data.status == IdtyStatus::Validated,
Error::<T, I>::IssuerCanNotEmitCert
),
None => return Err(Error::<T, I>::IssuerNotFound.into()),
};
match pallet_identity::Pallet::<T>::identity(receiver) {
Some(receiver_data) => ensure!(
);
} else {
return Err(Error::<T, I>::IdtyNotFound.into());
}
if let Some(receiver_data) = pallet_identity::Pallet::<T>::identity(receiver) {
ensure!(
receiver_data.status != IdtyStatus::Created,
Error::<T, I>::CertToUnconfirmedIdty
),
None => return Err(Error::<T, I>::ReceiverNotFound.into()),
};
);
} else {
return Err(Error::<T, I>::IdtyNotFound.into());
}
Ok(())
}
}
impl<T: Config<I>, I: 'static> sp_membership::traits::CheckIdtyAllowedMembership<IdtyIndex>
for Pallet<T, I>
{
impl<T: Config<I>, I: 'static> sp_membership::traits::CheckCallAllowed<IdtyIndex> for Pallet<T, I> {
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);
ensure!(
@@ -247,7 +231,7 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::CheckIdtyAllowedMembership
Error::<T, I>::IdtyNotAllowedToRenewMembership
);
} else {
return Err(Error::<T, I>::IssuerNotFound.into());
return Err(Error::<T, I>::IdtyNotFound.into());
}
Ok(())
}
@@ -261,7 +245,7 @@ impl<T: Config<I>, I: 'static> sp_membership::traits::CheckIdtyAllowedMembership
Error::<T, I>::IdtyNotAllowedToRequestMembership
);
} else {
return Err(Error::<T, I>::IssuerNotFound.into());
return Err(Error::<T, I>::IdtyNotFound.into());
}
Ok(())
}
Loading