Skip to content
Open
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
156d119
Add `DijkstraEra era` to `CardanoEra era`
Jimbo4350 Jul 30, 2025
2872eda
Add `ShelleyBasedEraDijkstra` to `ShelleyBasedEra era`
Jimbo4350 Jul 30, 2025
dda8797
Add Dijkstra era to eons
Jimbo4350 Jul 30, 2025
704d11d
Add `DijkstraEra` to `Era era`
Jimbo4350 Jul 30, 2025
7a86381
COMBINE ME: cabal file updates
Jimbo4350 Jul 30, 2025
5be60e0
Update `QueryInShelleyBasedEra era result`
Jimbo4350 Jul 30, 2025
3a8826d
Update `makeShelleyTransactionBody` with Dijkstra era
Jimbo4350 Jul 30, 2025
e63bb2c
Update ledger types `PParamUpdatePurpose`, `CommitteePurpose` and
Jimbo4350 Jul 30, 2025
63ad603
Propagate `ChainAccountState`
Jimbo4350 Jul 30, 2025
b483de7
Consensus related Dijkstra changes
Jimbo4350 Jul 30, 2025
0d8ee49
Temporary Cardano.Api.LedgerState Dijkstra update
Jimbo4350 Jul 30, 2025
730ff11
Update TxOut rendering to handle Dijkstra era
Jimbo4350 Jul 30, 2025
ca28c36
Update `eraSpecificLedgerTxBody` with Dijkstra era
Jimbo4350 Jul 30, 2025
d91aedc
Update `decodeBigLedgerPeerSnapshot` to support snapshot SRV names
Jimbo4350 Jul 30, 2025
338a657
Update generators with PlutusScriptV4
Jimbo4350 Jul 30, 2025
acdff31
Introduce PlutusScriptV4
Jimbo4350 Jul 30, 2025
3437b94
Propagate Dijkstra era
Jimbo4350 Jul 30, 2025
0a737a6
Merge with PlutusV4 intro
Jimbo4350 Jul 30, 2025
5229ec3
Merge with propagate Dikstra
Jimbo4350 Jul 30, 2025
6e832cb
REMOVE ME: Add ledger and consensus SRPs
Jimbo4350 Jul 30, 2025
8330132
Update nix flake
Jimbo4350 Jul 30, 2025
f3ca538
Update cardano-rpc with PlutusV4
Jimbo4350 Jul 31, 2025
6d81484
Implement `executeLocalStateQueryExprWithVersion`
Jimbo4350 Jul 31, 2025
4904a0d
Fix parseHardForkTriggers
Jimbo4350 Jul 31, 2025
2da81eb
Fix cardano-rpc-test for protocol parameters roundtrip
carbolymer Aug 1, 2025
673e4a8
Update flake lock and ouroboros-network and plutus patches
palas Aug 1, 2025
65013af
Update wasm cache
palas Aug 1, 2025
1efbb74
Merge with: Consensus related Dijkstra change
Aug 7, 2025
faab1c2
Use exampleDijkstraGenesis value
Aug 7, 2025
7b8fa12
Fix cabal-gild CI failure
Aug 7, 2025
0eeff17
Run formolu
Aug 7, 2025
a93eab2
Fix HLS CI job
carbolymer Aug 11, 2025
79b9c02
Address lints
palas Aug 12, 2025
64e62e7
Update `ouroboros-consensus` stanza
palas Aug 12, 2025
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
Prev Previous commit
Next Next commit
Add DijkstraEra to Era era
  • Loading branch information
Jimbo4350 authored and Jordan Millar committed Aug 8, 2025
commit 704d11d77c118d4bd535b7a5a6c2748eae86247d
22 changes: 21 additions & 1 deletion cardano-api/src/Cardano/Api/Experimental/Era.hs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ where

import Cardano.Api.Consensus
import Cardano.Api.Era qualified as Api
import Cardano.Api.Era.Internal.Core (BabbageEra, ConwayEra, Eon (..))
import Cardano.Api.Era.Internal.Core (BabbageEra, ConwayEra, DijkstraEra, Eon (..))
import Cardano.Api.Era.Internal.Eon.AlonzoEraOnwards
import Cardano.Api.Era.Internal.Eon.BabbageEraOnwards
import Cardano.Api.Era.Internal.Eon.Convert
Expand Down Expand Up @@ -70,6 +70,7 @@ import Prettyprinter
-- and the next (upcoming) era.
type family LedgerEra era = (r :: Type) | r -> era where
LedgerEra ConwayEra = Ledger.ConwayEra
LedgerEra DijkstraEra = L.DijkstraEra

-- | An existential wrapper for types of kind @k -> Type@. It can hold any
-- era, for example, @Some Era@. The era witness can be brought back into scope,
Expand Down Expand Up @@ -98,6 +99,7 @@ data Some (f :: k -> Type) where
data Era era where
-- | The currently active era on the Cardano mainnet.
ConwayEra :: Era ConwayEra
DijkstraEra :: Era DijkstraEra

deriving instance Show (Era era)

Expand All @@ -108,6 +110,8 @@ instance Pretty (Era era) where

instance TestEquality Era where
testEquality ConwayEra ConwayEra = Just Refl
testEquality DijkstraEra DijkstraEra = Just Refl
testEquality _ _ = Nothing

instance ToJSON (Era era) where
toJSON = eraToStringLike
Expand All @@ -126,6 +130,7 @@ instance Enum (Some Era) where
toEnum 0 = Some ConwayEra
toEnum i = error $ "Enum.toEnum: invalid argument " <> show i <> " - does not correspond to any era"
fromEnum (Some ConwayEra) = 0
fromEnum (Some DijkstraEra) = 1

instance Ord (Some Era) where
compare e1 e2 = compare (fromEnum e1) (fromEnum e2)
Expand Down Expand Up @@ -155,16 +160,19 @@ instance Eon Era where
instance Api.ToCardanoEra Era where
toCardanoEra = \case
ConwayEra -> Api.ConwayEra
DijkstraEra -> Api.DijkstraEra

eraToStringLike :: IsString a => Era era -> a
{-# INLINE eraToStringLike #-}
eraToStringLike = \case
ConwayEra -> "Conway"
DijkstraEra -> "Dijkstra"

eraFromStringLike :: (IsString a, Eq a) => a -> Either a (Some Era)
{-# INLINE eraFromStringLike #-}
eraFromStringLike = \case
"Conway" -> pure $ Some ConwayEra
"Dijkstra" -> pure $ Some DijkstraEra
wrong -> Left wrong

-- | How to deprecate an era:
Expand Down Expand Up @@ -205,30 +213,37 @@ eraToSbe = convert
instance Convert Era Api.CardanoEra where
convert = \case
ConwayEra -> Api.ConwayEra
DijkstraEra -> Api.DijkstraEra

instance Convert Era ShelleyBasedEra where
convert = \case
ConwayEra -> ShelleyBasedEraConway
DijkstraEra -> ShelleyBasedEraDijkstra

instance Convert Era AlonzoEraOnwards where
convert = \case
ConwayEra -> AlonzoEraOnwardsConway
DijkstraEra -> AlonzoEraOnwardsDijkstra

instance Convert Era BabbageEraOnwards where
convert = \case
ConwayEra -> BabbageEraOnwardsConway
DijkstraEra -> BabbageEraOnwardsDijkstra

instance Convert Era MaryEraOnwards where
convert = \case
ConwayEra -> MaryEraOnwardsConway
DijkstraEra -> MaryEraOnwardsDijkstra

instance Convert Era ConwayEraOnwards where
convert = \case
ConwayEra -> ConwayEraOnwardsConway
DijkstraEra -> ConwayEraOnwardsDijkstra

instance Convert ConwayEraOnwards Era where
convert = \case
ConwayEraOnwardsConway -> ConwayEra
ConwayEraOnwardsDijkstra -> DijkstraEra

newtype DeprecatedEra era
= DeprecatedEra (ShelleyBasedEra era)
Expand All @@ -245,6 +260,7 @@ sbeToEra
=> ShelleyBasedEra era
-> m (Era era)
sbeToEra ShelleyBasedEraConway = return ConwayEra
sbeToEra ShelleyBasedEraDijkstra = return DijkstraEra
sbeToEra e@ShelleyBasedEraBabbage = throwError $ DeprecatedEra e
sbeToEra e@ShelleyBasedEraAlonzo = throwError $ DeprecatedEra e
sbeToEra e@ShelleyBasedEraMary = throwError $ DeprecatedEra e
Expand All @@ -264,11 +280,15 @@ class IsEra era where
instance IsEra ConwayEra where
useEra = ConwayEra

instance IsEra DijkstraEra where
useEra = DijkstraEra

obtainCommonConstraints
:: Era era
-> (EraCommonConstraints era => a)
-> a
obtainCommonConstraints ConwayEra x = x
obtainCommonConstraints DijkstraEra x = x

type EraCommonConstraints era =
( L.AllegraEraScript (LedgerEra era)
Expand Down