Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,6 @@ instance Protocol (LeiosFetch point eb tx) where
TxBitmaps ->
!(V.Vector tx) ->
Message (LeiosFetch point eb tx) (StBusy StBlockTxs) StIdle
-- MsgLeiosVotesRequest
-- MsgLeiosVoteDelivery

-- MsgLeiosBlockRangeRequest
-- MsgLeiosNextBlockAndTxsInRange
-- MsgLeiosLastBlockAndTxsInRange

MsgDone ::
Message (LeiosFetch point eb tx) StIdle StDone

Expand All @@ -193,11 +186,6 @@ instance NFData (Message (LeiosFetch point eb tx) from to) where
MsgLeiosBlock{} -> ()
MsgLeiosBlockTxsRequest _p bitmaps -> rnf bitmaps
MsgLeiosBlockTxs{} -> ()
-- MsgLeiosVotesRequest
-- MsgLeiosVoteDelivery
-- MsgLeiosBlockRangeRequest
-- MsgLeiosNextBlockAndTxsInRange
-- MsgLeiosLastBlockAndTxsInRange
MsgDone -> ()

deriving instance
Expand Down Expand Up @@ -315,29 +303,29 @@ encodeLeiosFetch encodeP encodeEb encodeTx = encode
Message (LeiosFetch point eb tx) st0 st1 ->
CBOR.Encoding
encode = \case
MsgDone ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 0
MsgLeiosBlockRequest p ->
CBOR.encodeListLen 2
<> CBOR.encodeWord 0
<> CBOR.encodeWord 1
<> encodeP p
MsgLeiosBlock x ->
CBOR.encodeListLen 2
<> CBOR.encodeWord 1
<> CBOR.encodeWord 2
<> encodeEb x
MsgLeiosBlockTxsRequest p bitmaps ->
CBOR.encodeListLen 3
<> CBOR.encodeWord 2
<> CBOR.encodeWord 3
<> encodeP p
<> encodeBitmaps bitmaps
MsgLeiosBlockTxs p bitmaps txs ->
CBOR.encodeListLen 4
<> CBOR.encodeWord 3
<> CBOR.encodeWord 4
<> encodeP p
<> encodeBitmaps bitmaps
<> CBOR.encodeListLen (fromIntegral $ V.length txs)
<> foldMap encodeTx txs
MsgDone ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 9

decodeLeiosFetch ::
forall
Expand Down Expand Up @@ -366,17 +354,19 @@ decodeLeiosFetch maxTxs decodeP decodeEb decodeTx = decode
CBOR.Decoder s (SomeMessage st')
decode stok len key = do
case (stok, len, key) of
(SingIdle, 2, 0) -> do
(SingIdle, 1, 0) ->
return $ SomeMessage MsgDone
(SingIdle, 2, 1) -> do
p <- decodeP
return $ SomeMessage $ MsgLeiosBlockRequest p
(SingBlock, 2, 1) -> do
(SingBlock, 2, 2) -> do
x <- decodeEb
return $ SomeMessage $ MsgLeiosBlock x
(SingIdle, 3, 2) -> do
(SingIdle, 3, 3) -> do
p <- decodeP
bitmaps <- decodeBitmaps maxTxs
return $ SomeMessage $ MsgLeiosBlockTxsRequest p bitmaps
(SingBlockTxs, 4, 3) -> do
(SingBlockTxs, 4, 4) -> do
p <- decodeP
bitmaps <- decodeBitmaps maxTxs
n <- CBOR.decodeListLen
Expand All @@ -395,13 +385,6 @@ decodeLeiosFetch maxTxs decodeP decodeEb decodeTx = decode
<> " txs in the bitmaps"
txs <- V.generateM n $ \_i -> decodeTx
return $ SomeMessage $ MsgLeiosBlockTxs p bitmaps txs
-- MsgLeiosVotesRequest
-- MsgLeiosVoteDelivery
-- MsgLeiosBlockRangeRequest
-- MsgLeiosNextBlockAndTxsInRange
-- MsgLeiosLastBlockAndTxsInRange
(SingIdle, 1, 9) ->
return $ SomeMessage MsgDone
(SingDone, _, _) -> notActiveState stok
-- failures per protocol state
(SingIdle, _, _) ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,39 +301,39 @@ encodeLeiosNotify encodeP encodeA encodeV = encode
Message (LeiosNotify point announcement vote) st0 st1 ->
CBOR.Encoding
encode = \case
MsgLeiosNotificationRequestNext ->
MsgDone ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 0
MsgQuit ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 1
MsgCanceled ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 2
MsgLeiosNotificationRequestNext ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 3
MsgLeiosBlockAnnouncement x ->
CBOR.encodeListLen 2
<> CBOR.encodeWord 1
<> CBOR.encodeWord 4
<> encodeA x
MsgLeiosBlockOffer p sz ->
CBOR.encodeListLen 3
<> CBOR.encodeWord 2
<> CBOR.encodeWord 5
<> encodeP p
<> CBOR.encodeWord32 sz
MsgLeiosBlockTxsOffer p ->
CBOR.encodeListLen 2
<> CBOR.encodeWord 3
<> CBOR.encodeWord 6
<> encodeP p
MsgLeiosVotes vs ->
CBOR.encodeListLen 2
<> CBOR.encodeWord 4
<> CBOR.encodeWord 7
<> encodeVotes
where
encodeVotes =
CBOR.encodeListLen (fromIntegral $ length vs)
<> foldMap encodeV vs
MsgDone ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 5
MsgQuit ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 6
MsgCanceled ->
CBOR.encodeListLen 1
<> CBOR.encodeWord 7

decodeLeiosNotify ::
forall
Expand Down Expand Up @@ -361,31 +361,31 @@ decodeLeiosNotify decodeP decodeA decodeV = decode
CBOR.Decoder s (SomeMessage st')
decode stok len key = do
case (stok, len, key) of
(SingIdle, 1, 0) ->
(SingQuit, 1, 0) ->
return $ SomeMessage MsgDone
(SingIdle, 1, 1) ->
return $ SomeMessage MsgQuit
(SingBusy, 1, 2) ->
return $ SomeMessage MsgCanceled
(SingIdle, 1, 3) ->
return $ SomeMessage MsgLeiosNotificationRequestNext
(SingBusy, 2, 1) -> do
(SingBusy, 2, 4) -> do
x <- decodeA
return $ SomeMessage $ MsgLeiosBlockAnnouncement x
(SingBusy, 3, 2) -> do
(SingBusy, 3, 5) -> do
p <- decodeP
sz <- CBOR.decodeWord32
return $ SomeMessage $ MsgLeiosBlockOffer p sz
(SingBusy, 2, 3) -> do
(SingBusy, 2, 6) -> do
p <- decodeP
return $ SomeMessage $ MsgLeiosBlockTxsOffer p
(SingBusy, 2, 4) -> do
(SingBusy, 2, 7) -> do
vs <- decodeVotes
return $ SomeMessage $ MsgLeiosVotes vs
where
decodeVotes = do
n <- CBOR.decodeListLen
replicateM n decodeV
(SingQuit, 1, 5) ->
return $ SomeMessage MsgDone
(SingIdle, 1, 6) ->
return $ SomeMessage MsgQuit
(SingBusy, 1, 7) ->
return $ SomeMessage MsgCanceled
(SingDone, _, _) -> notActiveState stok
-- failures per protocol state
(SingIdle, _, _) ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ prop_decodeBlockTxsChecksCount =
check label expected bitmaps declared nTxs = do
let msg =
CBOR.encodeListLen 4
<> CBOR.encodeWord 3
<> CBOR.encodeWord 4 -- MsgLeiosBlockTxs
<> encodeLeiosPoint testPoint
<> encodeBitmapEntries bitmaps
<> CBOR.encodeListLen (fromIntegral declared)
Expand Down
Loading