Skip to content
Closed
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
29 changes: 29 additions & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,32 @@ if os (windows)

constraints:
tasty <1.5.4,

-- Packages released against the previous versions still work with these.
allow-newer:
*:cardano-ledger-conway,
*:cardano-ledger-core,
*:cardano-ledger-dijkstra,
*:cardano-ledger-shelley,
*:cardano-protocol

-- TODO: Points to cardano-ledger/main
-- Needed for: mkHeaderBody
source-repository-package
type: git
location: https://github.com/input-output-hk/cardano-ledger.git
tag: 5b31cdd1527c715dbf95eaea79e3cba193540733
--sha256: sha256-M2ca2QhXTrB6/SRjjo9eoAGhz4RVG6ZNSgv7x44z/+w=
subdir:
eras/allegra/impl
eras/alonzo/impl
eras/babbage/impl
eras/conway/impl
eras/dijkstra/impl
eras/mary/impl
eras/shelley/impl
eras/shelley/test-suite
libs/cardano-ledger-api
libs/cardano-ledger-core
libs/cardano-protocol
libs/cardano-protocol-tpraos
51 changes: 51 additions & 0 deletions changelog.d/20261002_120000_sebastian.nagel_leios_protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
### Breaking

- The Dijkstra era now runs the new `Leios` protocol: it is
`ShelleyBlock (Leios c) DijkstraEra` instead of
`ShelleyBlock (Praos c) DijkstraEra`. This changes `CardanoShelleyEras`,
every `*Dijkstra` pattern synonym of `CardanoBlock`, `StandardDijkstraBlock`,
`DijkstraTxOut` and `DijkstraEbMeasure`. Dijkstra headers are now
`Cardano.Protocol.Leios.BlockHeader.Header`, and its chain-dependent state is
`LeiosState`, so the Dijkstra header and chain-dependent state encodings
change.
- `CardanoHardForkConstraints` now requires `LeiosCrypto c`.
- Removed the `ShelleyCompatible (Praos c) DijkstraEra` instance and the
`LeiosEraBlockHeader (Praos.Header c) DijkstraEra` instance that adapted the
Praos header to the Leios interface.
- `HeaderView` in `Ouroboros.Consensus.Protocol.Praos.Views` is now
`HeaderView' body crypto`, parameterised by the header body the KES
signature covers. `HeaderView crypto` remains as a type synonym for the
Praos body, but its data constructor is now `HeaderView'`.
- `validateKESSignature`, `doValidateKESSignature`, `validateVRFSignature` and
`doValidateVRFSignature` take a `HeaderView' body c`; the KES ones require
`KES.Signable (KES c) body`.
- Added `blockBodyContainsLeiosCert` to `ShelleyBasedEra` and
`pHeaderContainsLeiosCert` to `ProtocolHeaderSupportsEnvelope`. Neither has
a default, so instances must define them; eras and protocols without Leios
return `False` (`defaultHeaderContainsLeiosCert` does so for protocols).
- `fromShelleyLedgerExamplesPraos` (shelley testlib) is now polymorphic in the
protocol and takes a function rebuilding the example TPraos header as that
protocol's header.

### Non-Breaking

- Added `Ouroboros.Consensus.Protocol.Leios`, Praos with the Leios header:
- `Leios`, its `ConsensusProtocol` instance and `LeiosCrypto`, which is
`PraosCrypto` plus signing the Leios header body.
- `LeiosConfig`, which wraps the Praos `ConsensusConfig`.
- `LeiosState`, which is `PraosState` plus the endorser-block announcement
(`AnnouncedBy`) of the last applied header, with its CBOR encoding.
- `LeiosHeaderView`, and `TranslateProto` instances from `Praos` and `TPraos`.
- Exported `praosVerifyHeaderIntegrity`, `reupdatePraosState`,
`validateKESSignature` and `validateVRFSignature` from
`Ouroboros.Consensus.Protocol.Praos`, for protocols built on Praos.
- Added `Ouroboros.Consensus.Shelley.Protocol.Leios` (the Shelley protocol
instances for `Leios`) and `Ouroboros.Consensus.Shelley.Node.Leios`
(`leiosSharedBlockForging`). Forged Leios headers do not yet announce an
endorser block or claim a certificate.
- Added `praosEnvelopeCheck` to `Ouroboros.Consensus.Shelley.Protocol.EnvelopeChecks`.
- Added the `Leios` instances for `ShelleyCompatible`, `LedgerSupportsProtocol`,
`HasPartialConsensusConfig` and `EncodeDisk`/`DecodeDisk LeiosState`.
- `blockMatchesHeader` for Shelley-based blocks now also rejects a block when:
- its header misreports whether the body carries a Leios certificate, or
- its body carries both a Leios certificate and transactions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ header
serialisedShelleyHeader<alonzo.header>,
serialisedShelleyHeader<babbage.header>,
serialisedShelleyHeader<conway.header>,
serialisedShelleyHeader<dijkstraPraosHeader>>
serialisedShelleyHeader<dijkstraLeiosHeader>>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's do dijkstra.header here?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's what Javier did on the PR that just got merged into main, FYI.


byronHeader = [byronRegularIdx, #6.24(bytes .cbor byron.blockhead)]
/ [byronBoundaryIdx, #6.24(bytes .cbor byron.ebbhead)]
Expand All @@ -16,7 +16,7 @@ byronRegularIdx = [1, base.word32]

serialisedShelleyHeader<era> = #6.24(bytes .cbor era)

dijkstraPraosHeader = conway.header
dijkstraLeiosHeader = dijkstra.header

;# include byron as byron
;# include shelley as shelley
Expand Down
Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified ouroboros-consensus-cardano/golden/shelley/disk/ExtLedgerState
Binary file not shown.
Binary file modified ouroboros-consensus-cardano/golden/shelley/disk/LedgerState
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ import Ouroboros.Consensus.Ledger.SupportsMempool
, GenTxId
)
import Ouroboros.Consensus.Protocol.Abstract (ChainDepState)
import Ouroboros.Consensus.Protocol.Leios (Leios)
import Ouroboros.Consensus.Protocol.Praos (Praos)
import Ouroboros.Consensus.Protocol.TPraos (TPraos)
import Ouroboros.Consensus.Shelley.Eras
Expand All @@ -253,7 +254,7 @@ type CardanoShelleyEras c =
, ShelleyBlock (TPraos c) AlonzoEra
, ShelleyBlock (Praos c) BabbageEra
, ShelleyBlock (Praos c) ConwayEra
, ShelleyBlock (Praos c) DijkstraEra
, ShelleyBlock (Leios c) DijkstraEra
]

type ShelleyBasedLedgerEras :: Type -> [Type]
Expand Down Expand Up @@ -281,7 +282,7 @@ pattern TagMary :: f (ShelleyBlock (TPraos c) MaryEra) -> NS f (CardanoEras c)
pattern TagAlonzo :: f (ShelleyBlock (TPraos c) AlonzoEra) -> NS f (CardanoEras c)
pattern TagBabbage :: f (ShelleyBlock (Praos c) BabbageEra) -> NS f (CardanoEras c)
pattern TagConway :: f (ShelleyBlock (Praos c) ConwayEra) -> NS f (CardanoEras c)
pattern TagDijkstra :: f (ShelleyBlock (Praos c) DijkstraEra) -> NS f (CardanoEras c)
pattern TagDijkstra :: f (ShelleyBlock (Leios c) DijkstraEra) -> NS f (CardanoEras c)

pattern TagByron x = Z x
pattern TagShelley x = S (Z x)
Expand All @@ -303,7 +304,7 @@ pattern EraMary :: K () (ShelleyBlock (TPraos c) MaryEra) -> EraIndex (CardanoEr
pattern EraAlonzo :: K () (ShelleyBlock (TPraos c) AlonzoEra) -> EraIndex (CardanoEras c)
pattern EraBabbage :: K () (ShelleyBlock (Praos c) BabbageEra) -> EraIndex (CardanoEras c)
pattern EraConway :: K () (ShelleyBlock (Praos c) ConwayEra) -> EraIndex (CardanoEras c)
pattern EraDijkstra :: K () (ShelleyBlock (Praos c) DijkstraEra) -> EraIndex (CardanoEras c)
pattern EraDijkstra :: K () (ShelleyBlock (Leios c) DijkstraEra) -> EraIndex (CardanoEras c)

pattern EraByron x = EraIndex (TagByron x)
pattern EraShelley x = EraIndex (TagShelley x)
Expand Down Expand Up @@ -387,7 +388,7 @@ pattern TeleDijkstra ::
g (ShelleyBlock (TPraos c) AlonzoEra) ->
g (ShelleyBlock (Praos c) BabbageEra) ->
g (ShelleyBlock (Praos c) ConwayEra) ->
f (ShelleyBlock (Praos c) DijkstraEra) ->
f (ShelleyBlock (Leios c) DijkstraEra) ->
Telescope g f (CardanoEras c)

-- Here we use layout and adjacency to make it obvious that we haven't
Expand Down Expand Up @@ -448,7 +449,7 @@ pattern BlockBabbage b = HardForkBlock (OneEraBlock (TagBabbage (I b)))
pattern BlockConway :: ShelleyBlock (Praos c) ConwayEra -> CardanoBlock c
pattern BlockConway b = HardForkBlock (OneEraBlock (TagConway (I b)))

pattern BlockDijkstra :: ShelleyBlock (Praos c) DijkstraEra -> CardanoBlock c
pattern BlockDijkstra :: ShelleyBlock (Leios c) DijkstraEra -> CardanoBlock c
pattern BlockDijkstra b = HardForkBlock (OneEraBlock (TagDijkstra (I b)))

{-# COMPLETE
Expand Down Expand Up @@ -503,7 +504,7 @@ pattern HeaderConway ::
pattern HeaderConway h = HardForkHeader (OneEraHeader (TagConway h))

pattern HeaderDijkstra ::
Header (ShelleyBlock (Praos c) DijkstraEra) ->
Header (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoHeader c
pattern HeaderDijkstra h = HardForkHeader (OneEraHeader (TagDijkstra h))

Expand Down Expand Up @@ -546,7 +547,7 @@ pattern GenTxBabbage tx = HardForkGenTx (OneEraGenTx (TagBabbage tx))
pattern GenTxConway :: GenTx (ShelleyBlock (Praos c) ConwayEra) -> CardanoGenTx c
pattern GenTxConway tx = HardForkGenTx (OneEraGenTx (TagConway tx))

pattern GenTxDijkstra :: GenTx (ShelleyBlock (Praos c) DijkstraEra) -> CardanoGenTx c
pattern GenTxDijkstra :: GenTx (ShelleyBlock (Leios c) DijkstraEra) -> CardanoGenTx c
pattern GenTxDijkstra tx = HardForkGenTx (OneEraGenTx (TagDijkstra tx))

{-# COMPLETE
Expand Down Expand Up @@ -604,7 +605,7 @@ pattern GenTxIdConway txid =
HardForkGenTxId (OneEraGenTxId (TagConway (WrapGenTxId txid)))

pattern GenTxIdDijkstra ::
GenTxId (ShelleyBlock (Praos c) DijkstraEra) ->
GenTxId (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoGenTxId c
pattern GenTxIdDijkstra txid =
HardForkGenTxId (OneEraGenTxId (TagDijkstra (WrapGenTxId txid)))
Expand Down Expand Up @@ -678,7 +679,7 @@ pattern ApplyTxErrConway err =
HardForkApplyTxErrFromEra (OneEraApplyTxErr (TagConway (WrapApplyTxErr err)))

pattern ApplyTxErrDijkstra ::
ApplyTxErr (ShelleyBlock (Praos c) DijkstraEra) ->
ApplyTxErr (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoApplyTxErr c
pattern ApplyTxErrDijkstra err =
HardForkApplyTxErrFromEra (OneEraApplyTxErr (TagDijkstra (WrapApplyTxErr err)))
Expand Down Expand Up @@ -767,7 +768,7 @@ pattern LedgerErrorConway err =
(OneEraLedgerError (TagConway (WrapLedgerErr err)))

pattern LedgerErrorDijkstra ::
LedgerError (ShelleyBlock (Praos c) DijkstraEra) ->
LedgerError (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoLedgerError c
pattern LedgerErrorDijkstra err =
HardForkLedgerErrorFromEra
Expand Down Expand Up @@ -840,7 +841,7 @@ pattern OtherHeaderEnvelopeErrorConway err =
HardForkEnvelopeErrFromEra (OneEraEnvelopeErr (TagConway (WrapEnvelopeErr err)))

pattern OtherHeaderEnvelopeErrorDijkstra ::
OtherHeaderEnvelopeError (ShelleyBlock (Praos c) DijkstraEra) ->
OtherHeaderEnvelopeError (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoOtherHeaderEnvelopeError c
pattern OtherHeaderEnvelopeErrorDijkstra err =
HardForkEnvelopeErrFromEra (OneEraEnvelopeErr (TagDijkstra (WrapEnvelopeErr err)))
Expand Down Expand Up @@ -904,7 +905,7 @@ pattern TipInfoConway ::
pattern TipInfoConway ti = OneEraTipInfo (TagConway (WrapTipInfo ti))

pattern TipInfoDijkstra ::
TipInfo (ShelleyBlock (Praos c) DijkstraEra) ->
TipInfo (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoTipInfo c
pattern TipInfoDijkstra ti = OneEraTipInfo (TagDijkstra (WrapTipInfo ti))

Expand Down Expand Up @@ -987,7 +988,7 @@ pattern QueryIfCurrentConway ::
pattern QueryIfCurrentDijkstra ::
() =>
CardanoQueryResult c result ~ a =>
BlockQuery (ShelleyBlock (Praos c) DijkstraEra) fp result ->
BlockQuery (ShelleyBlock (Leios c) DijkstraEra) fp result ->
CardanoQuery c fp a

-- Here we use layout and adjacency to make it obvious that we haven't
Expand Down Expand Up @@ -1151,7 +1152,7 @@ pattern CardanoCodecConfig ::
CodecConfig (ShelleyBlock (TPraos c) AlonzoEra) ->
CodecConfig (ShelleyBlock (Praos c) BabbageEra) ->
CodecConfig (ShelleyBlock (Praos c) ConwayEra) ->
CodecConfig (ShelleyBlock (Praos c) DijkstraEra) ->
CodecConfig (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoCodecConfig c
pattern CardanoCodecConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra =
HardForkCodecConfig
Expand Down Expand Up @@ -1189,7 +1190,7 @@ pattern CardanoBlockConfig ::
BlockConfig (ShelleyBlock (TPraos c) AlonzoEra) ->
BlockConfig (ShelleyBlock (Praos c) BabbageEra) ->
BlockConfig (ShelleyBlock (Praos c) ConwayEra) ->
BlockConfig (ShelleyBlock (Praos c) DijkstraEra) ->
BlockConfig (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoBlockConfig c
pattern CardanoBlockConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra =
HardForkBlockConfig
Expand Down Expand Up @@ -1227,7 +1228,7 @@ pattern CardanoStorageConfig ::
StorageConfig (ShelleyBlock (TPraos c) AlonzoEra) ->
StorageConfig (ShelleyBlock (Praos c) BabbageEra) ->
StorageConfig (ShelleyBlock (Praos c) ConwayEra) ->
StorageConfig (ShelleyBlock (Praos c) DijkstraEra) ->
StorageConfig (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoStorageConfig c
pattern CardanoStorageConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra =
HardForkStorageConfig
Expand Down Expand Up @@ -1268,7 +1269,7 @@ pattern CardanoConsensusConfig ::
PartialConsensusConfig (BlockProtocol (ShelleyBlock (TPraos c) AlonzoEra)) ->
PartialConsensusConfig (BlockProtocol (ShelleyBlock (Praos c) BabbageEra)) ->
PartialConsensusConfig (BlockProtocol (ShelleyBlock (Praos c) ConwayEra)) ->
PartialConsensusConfig (BlockProtocol (ShelleyBlock (Praos c) DijkstraEra)) ->
PartialConsensusConfig (BlockProtocol (ShelleyBlock (Leios c) DijkstraEra)) ->
CardanoConsensusConfig c
pattern CardanoConsensusConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra <-
HardForkConsensusConfig
Expand Down Expand Up @@ -1308,7 +1309,7 @@ pattern CardanoLedgerConfig ::
PartialLedgerConfig (ShelleyBlock (TPraos c) AlonzoEra) ->
PartialLedgerConfig (ShelleyBlock (Praos c) BabbageEra) ->
PartialLedgerConfig (ShelleyBlock (Praos c) ConwayEra) ->
PartialLedgerConfig (ShelleyBlock (Praos c) DijkstraEra) ->
PartialLedgerConfig (ShelleyBlock (Leios c) DijkstraEra) ->
CardanoLedgerConfig c
pattern CardanoLedgerConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra <-
HardForkLedgerConfig
Expand Down Expand Up @@ -1404,7 +1405,7 @@ pattern LedgerStateConway st <-
)

pattern LedgerStateDijkstra ::
LedgerState (ShelleyBlock (Praos c) DijkstraEra) mk ->
LedgerState (ShelleyBlock (Leios c) DijkstraEra) mk ->
CardanoLedgerState c mk
pattern LedgerStateDijkstra st <-
HardForkLedgerState
Expand Down Expand Up @@ -1485,7 +1486,7 @@ pattern ChainDepStateConway st <-
(TeleConway _ _ _ _ _ _ (State.Current{currentState = WrapChainDepState st}))

pattern ChainDepStateDijkstra ::
ChainDepState (BlockProtocol (ShelleyBlock (Praos c) DijkstraEra)) ->
ChainDepState (BlockProtocol (ShelleyBlock (Leios c) DijkstraEra)) ->
CardanoChainDepState c
pattern ChainDepStateDijkstra st <-
State.HardForkState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ import Ouroboros.Consensus.Ledger.Tables.Utils
import Ouroboros.Consensus.Protocol.Abstract hiding
( translateChainDepState
)
import Ouroboros.Consensus.Protocol.Leios (Leios, LeiosCrypto)
import Ouroboros.Consensus.Protocol.PBFT.State (PBftState)
import qualified Ouroboros.Consensus.Protocol.PBFT.State as PBftState
import Ouroboros.Consensus.Protocol.Praos (Praos)
Expand All @@ -112,13 +113,14 @@ import Ouroboros.Consensus.Util (coerceMapKeys)
type CardanoHardForkConstraints c =
( TPraos.PraosCrypto c
, Praos.PraosCrypto c
, LeiosCrypto c
, LedgerSupportsProtocol (ShelleyBlock (TPraos c) ShelleyEra)
, LedgerSupportsProtocol (ShelleyBlock (TPraos c) AllegraEra)
, LedgerSupportsProtocol (ShelleyBlock (TPraos c) MaryEra)
, LedgerSupportsProtocol (ShelleyBlock (TPraos c) AlonzoEra)
, LedgerSupportsProtocol (ShelleyBlock (Praos c) BabbageEra)
, LedgerSupportsProtocol (ShelleyBlock (Praos c) ConwayEra)
, LedgerSupportsProtocol (ShelleyBlock (Praos c) DijkstraEra)
, LedgerSupportsProtocol (ShelleyBlock (Leios c) DijkstraEra)
)

-- | When performing era translations, two eras have special behaviours on the
Expand All @@ -134,7 +136,7 @@ type CardanoHardForkConstraints c =
instance CardanoHardForkConstraints c => CanHardFork (CardanoEras c) where
type HardForkTxMeasurePhase1 (CardanoEras c) = AlonzoMeasure
type HardForkTxMeasurePhase2 (CardanoEras c) = RefScriptSize
type HardForkTxEbMeasure (CardanoEras c) = TxEbMeasure (ShelleyBlock (Praos c) DijkstraEra)
type HardForkTxEbMeasure (CardanoEras c) = TxEbMeasure (ShelleyBlock (Leios c) DijkstraEra)

hardForkEraTranslation =
EraTranslation
Expand Down Expand Up @@ -273,10 +275,10 @@ instance CardanoHardForkConstraints c => CanHardFork (CardanoEras c) where
}

hardForkTxEbMeasure _ p1 p2 =
txEbMeasure (Proxy @(ShelleyBlock (Praos c) DijkstraEra)) (TxMeasure p1 p2)
txEbMeasure (Proxy @(ShelleyBlock (Leios c) DijkstraEra)) (TxMeasure p1 p2)

hardForkMempoolEbReservation _ eb =
let TxMeasure p1 p2 = mempoolEbReservation (Proxy @(ShelleyBlock (Praos c) DijkstraEra)) eb
let TxMeasure p1 p2 = mempoolEbReservation (Proxy @(ShelleyBlock (Leios c) DijkstraEra)) eb
in (p1, p2)

-- Both ids are ordered by their txid hash, ignoring the era. Equality reuses
Expand Down Expand Up @@ -715,7 +717,7 @@ translateLedgerStateConwayToDijkstraWrapper ::
WrapLedgerConfig
TranslateLedgerState
(ShelleyBlock (Praos c) ConwayEra)
(ShelleyBlock (Praos c) DijkstraEra)
(ShelleyBlock (Leios c) DijkstraEra)
translateLedgerStateConwayToDijkstraWrapper =
RequireBoth $ \_cfgConway cfgDijkstra ->
TranslateLedgerState
Expand All @@ -726,20 +728,36 @@ translateLedgerStateConwayToDijkstraWrapper =
. SL.translateEra' (getDijkstraTranslationContext cfgDijkstra)
. Comp
. Flip
. retypeProtocol
}
where
-- Dijkstra is the first era to run Leios, so this translation crosses both
-- an era and a protocol. Only the protocol index changes here, which is a
-- phantom of 'ShelleyBlock': nothing is converted, the rebuild is what
-- retypes it.
retypeProtocol ::
LedgerState (ShelleyBlock (Praos c) ConwayEra) mk ->
LedgerState (ShelleyBlock (Leios c) ConwayEra) mk
retypeProtocol (ShelleyLedgerState wo nes st tb) =
ShelleyLedgerState
{ shelleyLedgerTip = fmap castShelleyTip wo
, shelleyLedgerState = nes
, shelleyLedgerTransition = st
, shelleyLedgerTables = coerce tb
}

translateLedgerTablesConwayToDijkstraWrapper ::
TranslateLedgerTables
(ShelleyBlock (Praos c) ConwayEra)
(ShelleyBlock (Praos c) DijkstraEra)
(ShelleyBlock (Leios c) DijkstraEra)
translateLedgerTablesConwayToDijkstraWrapper =
TranslateLedgerTables
{ translateTxInWith = coerce
, translateTxOutWith = SL.upgradeTxOut
}

getDijkstraTranslationContext ::
WrapLedgerConfig (ShelleyBlock (Praos c) DijkstraEra) ->
WrapLedgerConfig (ShelleyBlock (Leios c) DijkstraEra) ->
SL.TranslationContext DijkstraEra
getDijkstraTranslationContext =
shelleyLedgerTranslationContext . unwrapLedgerConfig
Loading
Loading