{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
module Ouroboros.Consensus.Node.NetworkProtocolVersion
( HasNetworkProtocolVersion(..)
, SupportedNetworkProtocolVersion(..)
, NodeToNodeVersion(..)
, NodeToClientVersion(..)
) where
import Data.Kind (Type)
import Data.Map.Strict (Map)
import Data.Proxy
import Ouroboros.Network.NodeToClient
import Ouroboros.Network.NodeToNode
class ( Show (BlockNodeToNodeVersion blk)
, Show (BlockNodeToClientVersion blk)
, Eq (BlockNodeToNodeVersion blk)
, Eq (BlockNodeToClientVersion blk)
) => HasNetworkProtocolVersion blk where
type BlockNodeToNodeVersion blk :: Type
type BlockNodeToClientVersion blk :: Type
type BlockNodeToNodeVersion blk = ()
type BlockNodeToClientVersion blk = ()
class HasNetworkProtocolVersion blk => SupportedNetworkProtocolVersion blk where
supportedNodeToNodeVersions
:: Proxy blk -> Map NodeToNodeVersion (BlockNodeToNodeVersion blk)
supportedNodeToClientVersions
:: Proxy blk -> Map NodeToClientVersion (BlockNodeToClientVersion blk)