#![cfg_attr(not(feature = "std"), no_std)]
use frame_support::{
Parameter,
dispatch::{Weight, GetDispatchInfo},
traits::{UnfilteredDispatchable, Vec}
};
pub trait CreateRecoveryCallFactory<Origin, AccountId, BlockNumber> {
type Call: Parameter + UnfilteredDispatchable<Origin = Origin> + GetDispatchInfo;
fn build_create_recovery_call(legal_officers: Vec<AccountId>, threshold: u16, delay_period: BlockNumber) -> Self::Call;
}
pub trait LocQuery<AccountId> {
fn has_closed_identity_locs(account: &AccountId, legal_officer: &Vec<AccountId>) -> bool;
}
pub trait MultisigApproveAsMultiCallFactory<Origin, AccountId, Timepoint> {
type Call: Parameter + UnfilteredDispatchable<Origin = Origin> + GetDispatchInfo;
fn build_approve_as_multi_call(
threshold: u16,
other_signatories: Vec<AccountId>,
maybe_timepoint: Option<Timepoint>,
call_hash: [u8; 32],
max_weight: Weight,
) -> Self::Call;
}
pub trait MultisigAsMultiCallFactory<Origin, AccountId, Timepoint> {
type Call: Parameter + UnfilteredDispatchable<Origin = Origin> + GetDispatchInfo;
fn build_as_multi_call(
threshold: u16,
other_signatories: Vec<AccountId>,
maybe_timepoint: Option<Timepoint>,
call: Vec<u8>,
store_call: bool,
max_weight: Weight,
) -> Self::Call;
}
pub trait IsLegalOfficer<AccountId> {
fn is_legal_officer(account: &AccountId) -> bool;
}