-- | See 'BlockSupportsLeios'.
module Ouroboros.Consensus.Block.SupportsLeios
  ( BlockSupportsLeios (..)
  , defaultBlockLeiosCert
  ) where

import Cardano.Crypto.Leios (LeiosCert)

-- | What a block's body says about Leios.
class BlockSupportsLeios blk where
  -- | The Leios certificate the block contains, if any, which certifies the
  -- endorser block its predecessor announced.
  blockLeiosCert :: blk -> Maybe LeiosCert

-- | 'blockLeiosCert' for a block type that never contains a Leios certificate.
defaultBlockLeiosCert :: blk -> Maybe LeiosCert
defaultBlockLeiosCert :: forall blk. blk -> Maybe LeiosCert
defaultBlockLeiosCert blk
_blk = Maybe LeiosCert
forall a. Maybe a
Nothing