pub fn setup_delegations<T>(
    levels: u32,
    children_per_level: NonZeroU32,
    permissions: Permissions
) -> Result<(Public, T::DelegationNodeId, Public, T::DelegationNodeId), DispatchErrorWithPostInfo>where
    T: Config,
    T::DelegationEntityId: From<Public>,
    T::CtypeCreatorId: From<T::DelegationEntityId>,
    T::DelegationNodeId: From<T::Hash>,
    <<T as Config>::DelegationSignatureVerification as VerifySignature>::Signature: From<(T::DelegationEntityId, <<T as Config>::DelegationSignatureVerification as VerifySignature>::Payload)>,
    <T as Config>::EnsureOrigin: GenerateBenchmarkOrigin<T::RuntimeOrigin, T::AccountId, T::DelegationEntityId>,
    BlockNumberFor<T>: From<u64>,
    <T as Config>::Currency: Mutate<T::AccountId>,