= <
::FinalityEngine as Engine<
::SourceChain, >>::FinalityProof; type FinalityVerificationContextfOf
= <
::FinalityEngine as Engine<
::SourceChain, >>::FinalityVerificationContext; type EquivocationProofOf
= <
::FinalityEngine as Engine<
::SourceChain, >>::EquivocationProof; type EquivocationsFinderOf
= <
::FinalityEngine as Engine<
::SourceChain, >>::EquivocationsFinder; type KeyOwnerProofOf
= <
::FinalityEngine as Engine<
::SourceChain,
>>::KeyOwnerProof;
/// Adapter that allows a `SubstrateEquivocationDetectionPipeline` to act as an
/// `EquivocationDetectionPipeline`.
#[derive(Clone, Debug)]
pub struct EquivocationDetectionPipelineAdapter ,
}
impl
{
const SOURCE_NAME: &'static str = P::SourceChain::NAME;
const TARGET_NAME: &'static str = P::TargetChain::NAME;
type Hash = HashOf ;
}
impl
{
type TargetNumber = BlockNumberOf ;
type EquivocationProof = EquivocationProofOf ;
type EquivocationsFinder = EquivocationsFinderOf ;
}
/// Different ways of building `report_equivocation` calls.
pub trait ReportEquivocationCallBuilder ,
key_owner_proof: KeyOwnerProofOf ,
) -> CallOf {
_phantom: PhantomData<(P, R)>,
}
impl ReportEquivocationCallBuilder for DirectReportGrandpaEquivocationCallBuilder
where
P: SubstrateEquivocationDetectionPipeline,
P::FinalityEngine: Engine<
P::SourceChain,
EquivocationProof = sp_consensus_grandpa::EquivocationProof<
HashOf ,
key_owner_proof: KeyOwnerProofOf ,
) -> CallOf