Skip to content

Commit 19923f2

Browse files
authored
Merge pull request #5179 from IntersectMBO/aniketd/better-blockbody-accessors
Add mkBasicBlockBody{Shelley,Alonzo} and txSeqBlockBody{Shelley,Alonzo}L
2 parents 8b1f7a1 + 1687d0e commit 19923f2

File tree

12 files changed

+69
-27
lines changed

12 files changed

+69
-27
lines changed

eras/allegra/impl/src/Cardano/Ledger/Allegra/BlockBody.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import Cardano.Ledger.Allegra.Era (AllegraEra)
1313
import Cardano.Ledger.Allegra.Tx ()
1414
import Cardano.Ledger.Core (EraBlockBody (..))
1515
import Cardano.Ledger.Shelley.BlockBody (
16-
ShelleyBlockBody (ShelleyBlockBody),
16+
ShelleyBlockBody,
17+
mkBasicBlockBodyShelley,
1718
shelleyBlockBodyHash,
18-
shelleyBlockBodyTxs,
19+
txSeqBlockBodyShelleyL,
1920
)
20-
import Lens.Micro
2121

2222
instance EraBlockBody AllegraEra where
2323
type BlockBody AllegraEra = ShelleyBlockBody AllegraEra
24-
mkBasicBlockBody = ShelleyBlockBody mempty
25-
txSeqBlockBodyL = lens shelleyBlockBodyTxs (\_ s -> ShelleyBlockBody s)
24+
mkBasicBlockBody = mkBasicBlockBodyShelley
25+
txSeqBlockBodyL = txSeqBlockBodyShelleyL
2626
hashBlockBody = shelleyBlockBodyHash
2727
numSegComponents = 3

eras/alonzo/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.14.0.0
44

5+
* Add `mkBasicBlockBodyAlonzo` and `txSeqBlockBodyAlonzoL` to use in Babbage, Conway and Dijkstra.
56
* Added `eraUnsupportedLanguage`
67
* Changed return type of `mkPlutusScript` and `mkBinaryPlutusScript` from `Maybe` to `MonadFail`
78
* Deprecate `Alonzo.TxSeq` in favour of `Alonzo.BlockBody`. #5156

eras/alonzo/impl/src/Cardano/Ledger/Alonzo/BlockBody.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Cardano.Ledger.Alonzo.BlockBody (
22
AlonzoBlockBody (AlonzoBlockBody),
3+
mkBasicBlockBodyAlonzo,
4+
txSeqBlockBodyAlonzoL,
35
alonzoBlockBodyHash,
46
alonzoBlockBodyTxs,
57
) where

eras/alonzo/impl/src/Cardano/Ledger/Alonzo/BlockBody/Internal.hs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
{-# LANGUAGE StandaloneDeriving #-}
1010
{-# LANGUAGE TypeApplications #-}
1111
{-# LANGUAGE TypeFamilies #-}
12+
{-# LANGUAGE TypeOperators #-}
1213
{-# LANGUAGE UndecidableInstances #-}
1314
{-# LANGUAGE ViewPatterns #-}
1415
{-# OPTIONS_GHC -Wno-orphans #-}
@@ -26,6 +27,8 @@ module Cardano.Ledger.Alonzo.BlockBody.Internal (
2627
AlonzoBlockBody (AlonzoBlockBody, ..),
2728
hashAlonzoSegWits,
2829
alignedValidFlags,
30+
mkBasicBlockBodyAlonzo,
31+
txSeqBlockBodyAlonzoL,
2932
) where
3033

3134
import qualified Cardano.Crypto.Hash as Hash
@@ -89,11 +92,29 @@ data AlonzoBlockBody era = AlonzoBlockBodyInternal
8992

9093
instance EraBlockBody AlonzoEra where
9194
type BlockBody AlonzoEra = AlonzoBlockBody AlonzoEra
92-
mkBasicBlockBody = AlonzoBlockBody mempty
93-
txSeqBlockBodyL = lens abbTxs (\_ s -> AlonzoBlockBody s)
95+
mkBasicBlockBody = mkBasicBlockBodyAlonzo
96+
txSeqBlockBodyL = txSeqBlockBodyAlonzoL
9497
hashBlockBody = abbHash
9598
numSegComponents = 4
9699

100+
mkBasicBlockBodyAlonzo ::
101+
( SafeToHash (TxWits era)
102+
, BlockBody era ~ AlonzoBlockBody era
103+
, AlonzoEraTx era
104+
) =>
105+
BlockBody era
106+
mkBasicBlockBodyAlonzo = AlonzoBlockBody mempty
107+
{-# INLINEABLE mkBasicBlockBodyAlonzo #-}
108+
109+
txSeqBlockBodyAlonzoL ::
110+
( SafeToHash (TxWits era)
111+
, BlockBody era ~ AlonzoBlockBody era
112+
, AlonzoEraTx era
113+
) =>
114+
Lens' (BlockBody era) (StrictSeq (Tx era))
115+
txSeqBlockBodyAlonzoL = lens abbTxs (\_ s -> AlonzoBlockBody s)
116+
{-# INLINEABLE txSeqBlockBodyAlonzoL #-}
117+
97118
pattern AlonzoBlockBody ::
98119
forall era.
99120
( AlonzoEraTx era

eras/babbage/impl/src/Cardano/Ledger/Babbage/BlockBody.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import Cardano.Ledger.Alonzo.BlockBody
77
import Cardano.Ledger.Babbage.Era
88
import Cardano.Ledger.Babbage.Tx ()
99
import Cardano.Ledger.Core
10-
import Lens.Micro (lens)
1110

1211
instance EraBlockBody BabbageEra where
1312
type BlockBody BabbageEra = AlonzoBlockBody BabbageEra
14-
mkBasicBlockBody = AlonzoBlockBody mempty
15-
txSeqBlockBodyL = lens alonzoBlockBodyTxs (\_ s -> AlonzoBlockBody s)
13+
mkBasicBlockBody = mkBasicBlockBodyAlonzo
14+
txSeqBlockBodyL = txSeqBlockBodyAlonzoL
1615
hashBlockBody = alonzoBlockBodyHash
1716
numSegComponents = 4

eras/conway/impl/src/Cardano/Ledger/Conway/BlockBody.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import Cardano.Ledger.Alonzo.BlockBody
77
import Cardano.Ledger.Conway.Era
88
import Cardano.Ledger.Conway.Tx ()
99
import Cardano.Ledger.Core
10-
import Lens.Micro (lens)
1110

1211
instance EraBlockBody ConwayEra where
1312
type BlockBody ConwayEra = AlonzoBlockBody ConwayEra
14-
mkBasicBlockBody = AlonzoBlockBody mempty
15-
txSeqBlockBodyL = lens alonzoBlockBodyTxs (\_ s -> AlonzoBlockBody s)
13+
mkBasicBlockBody = mkBasicBlockBodyAlonzo
14+
txSeqBlockBodyL = txSeqBlockBodyAlonzoL
1615
hashBlockBody = alonzoBlockBodyHash
1716
numSegComponents = 4

eras/dijkstra/src/Cardano/Ledger/Dijkstra/BlockBody.hs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import Cardano.Ledger.Alonzo.BlockBody
77
import Cardano.Ledger.Core
88
import Cardano.Ledger.Dijkstra.Era
99
import Cardano.Ledger.Dijkstra.Tx ()
10-
import Lens.Micro (lens)
1110

1211
instance EraBlockBody DijkstraEra where
1312
type BlockBody DijkstraEra = AlonzoBlockBody DijkstraEra
14-
mkBasicBlockBody = AlonzoBlockBody mempty
15-
txSeqBlockBodyL = lens alonzoBlockBodyTxs (\_ s -> AlonzoBlockBody s)
13+
mkBasicBlockBody = mkBasicBlockBodyAlonzo
14+
txSeqBlockBodyL = txSeqBlockBodyAlonzoL
1615
hashBlockBody = alonzoBlockBodyHash
1716
numSegComponents = 4

eras/mary/impl/src/Cardano/Ledger/Mary/BlockBody.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import Cardano.Ledger.Core (EraBlockBody (..))
1313
import Cardano.Ledger.Mary.Era (MaryEra)
1414
import Cardano.Ledger.Mary.Tx ()
1515
import Cardano.Ledger.Shelley.BlockBody (
16-
ShelleyBlockBody (ShelleyBlockBody),
16+
ShelleyBlockBody,
17+
mkBasicBlockBodyShelley,
1718
shelleyBlockBodyHash,
18-
shelleyBlockBodyTxs,
19+
txSeqBlockBodyShelleyL,
1920
)
20-
import Lens.Micro
2121

2222
instance EraBlockBody MaryEra where
2323
type BlockBody MaryEra = ShelleyBlockBody MaryEra
24-
mkBasicBlockBody = ShelleyBlockBody mempty
25-
txSeqBlockBodyL = lens shelleyBlockBodyTxs (\_ s -> ShelleyBlockBody s)
24+
mkBasicBlockBody = mkBasicBlockBodyShelley
25+
txSeqBlockBodyL = txSeqBlockBodyShelleyL
2626
hashBlockBody = shelleyBlockBodyHash
2727
numSegComponents = 3

eras/shelley/impl/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.17.0.0
44

5+
* Add `mkBasicBlockBodyShelley` and `txSeqBlockBodyShelleyL` to use in Allegra and Mary.
56
* Add `Default` instance for `NewEpochState`
67
* Remove `epochStateUMapL`, `unifiedL`, `rewards`, `delegations`, `ptrsMap` and `dsUnifiedL`
78
* Add `ShelleyEraAccounts` with `mkShelleyAccountState`, `accountsPtrsMapG`, `ptrAccountStateG`

eras/shelley/impl/src/Cardano/Ledger/Shelley/BlockBody.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Cardano.Ledger.Shelley.BlockBody (
22
ShelleyBlockBody (ShelleyBlockBody),
3+
txSeqBlockBodyShelleyL,
4+
mkBasicBlockBodyShelley,
35
shelleyBlockBodyHash,
46
shelleyBlockBodyTxs,
57
auxDataSeqDecoder,

0 commit comments

Comments
 (0)