Skip to content

Commit 9c03877

Browse files
committed
Move encode/decode functions for certs to proper file
1 parent fe678cd commit 9c03877

File tree

2 files changed

+28
-15
lines changed
  • ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network
  • ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Block

2 files changed

+28
-15
lines changed

ouroboros-consensus-diffusion/src/ouroboros-consensus-diffusion/Ouroboros/Consensus/Network/NodeToNode.hs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -433,21 +433,6 @@ defaultCodecs ccfg version encAddr decAddr nodeToNodeVersion =
433433
dec :: SerialiseNodeToNode blk a => forall s. Decoder s a
434434
dec = decodeNodeToNode ccfg version
435435

436-
encodePerasRoundNo (PerasRoundNo{..}) =
437-
CBOR.encodeWord64 unPerasRoundNo
438-
439-
decodePerasRoundNo =
440-
PerasRoundNo <$> CBOR.decodeWord64
441-
442-
encodePerasCert p (PerasCert{..}) =
443-
encodePerasRoundNo pcCertRound
444-
<> (encodePoint (encodeRawHash p) pcCertBoostedBlock)
445-
446-
decodePerasCert p =
447-
PerasCert
448-
<$> decodePerasRoundNo
449-
<*> (decodePoint (decodeRawHash p))
450-
451436
-- | Identity codecs used in tests.
452437
identityCodecs ::
453438
Monad m =>

ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/Block/SupportsPeras.hs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
{-# LANGUAGE FlexibleContexts #-}
55
{-# LANGUAGE FlexibleInstances #-}
66
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
7+
{-# LANGUAGE RecordWildCards #-}
78
{-# LANGUAGE ScopedTypeVariables #-}
89
{-# LANGUAGE TypeFamilies #-}
910
{-# LANGUAGE UndecidableInstances #-}
@@ -14,14 +15,22 @@ module Ouroboros.Consensus.Block.SupportsPeras
1415
, boostPerCert
1516
, BlockSupportsPeras (..)
1617
, PerasCert (..)
18+
, encodePerasRoundNo
19+
, decodePerasRoundNo
20+
, encodePerasCert
21+
, decodePerasCert
1722
) where
1823

24+
import qualified Codec.CBOR.Decoding as CBOR
25+
import qualified Codec.CBOR.Encoding as CBOR
1926
import Data.Monoid (Sum (..))
27+
import Data.Proxy (Proxy)
2028
import Data.Word (Word64)
2129
import GHC.Generics (Generic)
2230
import NoThunks.Class
2331
import Ouroboros.Consensus.Block.Abstract
2432
import Ouroboros.Consensus.Util.Condense
33+
import Ouroboros.Network.Block (decodePoint, encodePoint)
2534
import Quiet (Quiet (..))
2635

2736
newtype PerasRoundNo = PerasRoundNo {unPerasRoundNo :: Word64}
@@ -66,3 +75,22 @@ instance StandardHash blk => BlockSupportsPeras blk where
6675

6776
perasCertRound = pcCertRound
6877
perasCertBoostedBlock = pcCertBoostedBlock
78+
79+
encodePerasRoundNo :: PerasRoundNo -> CBOR.Encoding
80+
encodePerasRoundNo (PerasRoundNo{..}) =
81+
CBOR.encodeWord64 unPerasRoundNo
82+
83+
decodePerasRoundNo :: forall s. CBOR.Decoder s PerasRoundNo
84+
decodePerasRoundNo =
85+
PerasRoundNo <$> CBOR.decodeWord64
86+
87+
encodePerasCert :: forall blk. ConvertRawHash blk => Proxy blk -> PerasCert blk -> CBOR.Encoding
88+
encodePerasCert p (PerasCert{..}) =
89+
encodePerasRoundNo pcCertRound
90+
<> (encodePoint (encodeRawHash p) pcCertBoostedBlock)
91+
92+
decodePerasCert :: forall s blk. ConvertRawHash blk => Proxy blk -> CBOR.Decoder s (PerasCert blk)
93+
decodePerasCert p =
94+
PerasCert
95+
<$> decodePerasRoundNo
96+
<*> (decodePoint (decodeRawHash p))

0 commit comments

Comments
 (0)