pub fn new_inner<SM: StateMachineHandler<BI> + 'static, BI: BlockchainInterface + 'static>(
    additional_param: SM::AdditionalReturnParam,
    sm: SM,
    params: AsyncProtocolParameters<BI, MaxAuthorities>,
    channel_type: ProtocolType<<BI as BlockchainInterface>::BatchId, <BI as BlockchainInterface>::MaxProposalLength, <BI as BlockchainInterface>::MaxProposalsInBatch, <BI as BlockchainInterface>::Clock>
) -> Result<GenericAsyncHandler<'static, SM::Return>, DKGError>where
    <SM as StateMachine>::Err: Send + Debug,
    <SM as StateMachine>::MessageBody: Send + Serialize + MessageRoundID,
    <SM as StateMachine>::Output: Send,