Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
5625233
wip: cardano-api with kes-agent support
fraser-iohk Jun 25, 2025
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
bb549c0
Merge remote-tracking branch 'origin/ana/v2-node-release-10.6' into a…
ana-pantilie Aug 20, 2025
ff4b7ca
Merge remote-tracking branch 'origin/fraser-iohk/cardano-api-kes-agen…
ana-pantilie Aug 20, 2025
7ae44e9
WIP: update ledger and index-state
ana-pantilie Aug 21, 2025
f18e5cb
Fix most compilation errors
ana-pantilie Aug 25, 2025
764c708
Upgrade plutus to 1.52
ana-pantilie Aug 25, 2025
c21f792
Add bounds to quickcheck
ana-pantilie Aug 26, 2025
ee5eccf
Add another quickcheck bound
ana-pantilie Aug 26, 2025
f3de953
Fill in undefineds
Jimbo4350 Aug 26, 2025
22b76a1
Bump CHaP in nix flake
Jimbo4350 Sep 9, 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
Merge with PlutusV4 intro
  • Loading branch information
Jimbo4350 authored and Jordan Millar committed Aug 8, 2025
commit 0a737a67ef1c35dd78a2fbdd2dc04472357d9e9c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ getPlutusScriptWitnessLanguage (PlutusScriptWitness l _ _ _ _) =
L.SPlutusV1 -> L.plutusLanguage l
L.SPlutusV2 -> L.plutusLanguage l
L.SPlutusV3 -> L.plutusLanguage l
L.SPlutusV4 -> L.plutusLanguage l

-- | Every Plutus script has a purpose that indicates
-- what that script is witnessing.
Expand All @@ -100,21 +101,27 @@ type family PlutusScriptDatumF (lang :: L.Language) (purpose :: PlutusScriptPurp
PlutusScriptDatumF L.PlutusV1 SpendingScript = HashableScriptData
PlutusScriptDatumF L.PlutusV2 SpendingScript = HashableScriptData
PlutusScriptDatumF L.PlutusV3 SpendingScript = Maybe HashableScriptData -- CIP-69
PlutusScriptDatumF L.PlutusV4 SpendingScript = Maybe HashableScriptData -- CIP-69
PlutusScriptDatumF L.PlutusV1 MintingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV2 MintingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV3 MintingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV4 MintingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV1 WithdrawingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV2 WithdrawingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV3 WithdrawingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV4 WithdrawingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV1 CertifyingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV2 CertifyingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV3 CertifyingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV4 CertifyingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV1 ProposingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV2 ProposingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV3 ProposingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV4 ProposingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV1 VotingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV2 VotingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV3 VotingScript = NoScriptDatum
PlutusScriptDatumF L.PlutusV4 VotingScript = NoScriptDatum

data PlutusScriptDatum (lang :: L.Language) (purpose :: PlutusScriptPurpose) where
SpendingScriptDatum
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,13 @@ toPlutusScriptDatum
-> Old.ScriptDatum Old.WitCtxTxIn
-> PlutusScriptDatum (Old.ToLedgerPlutusLanguage lang) (ToPlutusScriptPurpose TxInItem)
-- ^ Encapsulates CIP-69: V3 spending script datums are optional
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV4 (Old.ScriptDatumForTxIn r) = SpendingScriptDatum r
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV3 (Old.ScriptDatumForTxIn r) = SpendingScriptDatum r
-- \^ V2 and V1 spending script datums are required
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV2 (Old.ScriptDatumForTxIn (Just r)) = SpendingScriptDatum r
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV1 (Old.ScriptDatumForTxIn (Just r)) = SpendingScriptDatum r
-- \^ V2 and V3 scripts can have inline datums
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV4 Old.InlineScriptDatum = InlineDatum
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV3 Old.InlineScriptDatum = InlineDatum
toPlutusScriptDatum WitTxIn{} Old.PlutusScriptV2 Old.InlineScriptDatum = InlineDatum
-- \^ Everything else is not allowed. The old api does not prevent these invalid combinations.
Expand Down Expand Up @@ -206,10 +208,12 @@ obtainConstraints v =
Old.PlutusScriptV1 -> id
Old.PlutusScriptV2 -> id
Old.PlutusScriptV3 -> id
Old.PlutusScriptV4 -> id

toPlutusSLanguage
:: Old.PlutusScriptVersion lang -> L.SLanguage (Old.ToLedgerPlutusLanguage lang)
toPlutusSLanguage = \case
Old.PlutusScriptV1 -> L.SPlutusV1
Old.PlutusScriptV2 -> L.SPlutusV2
Old.PlutusScriptV3 -> L.SPlutusV3
Old.PlutusScriptV4 -> L.SPlutusV4
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import Cardano.Ledger.Alonzo.Scripts qualified as L
import Cardano.Ledger.Babbage.Scripts qualified as L
import Cardano.Ledger.Conway.Scripts qualified as L
import Cardano.Ledger.Core qualified as L
import Cardano.Ledger.Dijkstra.Scripts qualified as Dijkstra
import Cardano.Ledger.Plutus.Data qualified as L
import Cardano.Ledger.Plutus.Language qualified as L

Expand Down Expand Up @@ -101,12 +102,14 @@ getAnyWitnessScript era ss@(AnySimpleScriptWitness{}) =
ShelleyBasedEraAlonzo -> L.TimelockScript <$> getAnyWitnessSimpleScript ss
ShelleyBasedEraBabbage -> L.TimelockScript <$> getAnyWitnessSimpleScript ss
ShelleyBasedEraConway -> L.TimelockScript <$> getAnyWitnessSimpleScript ss
ShelleyBasedEraDijkstra -> L.TimelockScript <$> getAnyWitnessSimpleScript ss
getAnyWitnessScript era ps@(AnyPlutusScriptWitness{}) =
forShelleyBasedEraInEon era Nothing $ \aEon ->
case aEon of
AlonzoEraOnwardsAlonzo -> L.PlutusScript <$> getAnyWitnessPlutusScript aEon ps
AlonzoEraOnwardsBabbage -> L.PlutusScript <$> getAnyWitnessPlutusScript aEon ps
AlonzoEraOnwardsConway -> L.PlutusScript <$> getAnyWitnessPlutusScript aEon ps
AlonzoEraOnwardsDijkstra -> L.PlutusScript <$> getAnyWitnessPlutusScript aEon ps

-- It should be noted that 'PlutusRunnable' is constructed via deserialization. The deserialization
-- instance lives in ledger and will fail for an invalid script language/era pairing. Therefore
Expand All @@ -127,6 +130,9 @@ fromPlutusRunnable L.SPlutusV1 eon runnable =
AlonzoEraOnwardsConway ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ L.ConwayPlutusV1 plutusScript
AlonzoEraOnwardsDijkstra ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ Dijkstra.MkDijkstraPlutusScript $ L.ConwayPlutusV1 plutusScript
fromPlutusRunnable L.SPlutusV2 eon runnable =
case eon of
AlonzoEraOnwardsAlonzo -> Nothing
Expand All @@ -136,13 +142,29 @@ fromPlutusRunnable L.SPlutusV2 eon runnable =
AlonzoEraOnwardsConway ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ L.ConwayPlutusV2 plutusScript
AlonzoEraOnwardsDijkstra ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ Dijkstra.MkDijkstraPlutusScript $ L.ConwayPlutusV2 plutusScript
fromPlutusRunnable L.SPlutusV3 eon runnable =
case eon of
AlonzoEraOnwardsAlonzo -> Nothing
AlonzoEraOnwardsBabbage -> Nothing
AlonzoEraOnwardsConway ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ L.ConwayPlutusV3 plutusScript
AlonzoEraOnwardsDijkstra ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ Dijkstra.MkDijkstraPlutusScript $ L.ConwayPlutusV3 plutusScript
fromPlutusRunnable L.SPlutusV4 eon runnable =
case eon of
AlonzoEraOnwardsAlonzo -> Nothing
AlonzoEraOnwardsBabbage -> Nothing
AlonzoEraOnwardsConway ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ (error "fromPlutusRunnable: ConwayPlutusV4") plutusScript
AlonzoEraOnwardsDijkstra ->
let plutusScript = L.plutusFromRunnable runnable
in Just $ Dijkstra.MkDijkstraPlutusScript $ (error "fromPlutusRunnable: DijkstraPlutusV4") plutusScript

toAlonzoDatum
:: AlonzoEraOnwards era
Expand All @@ -160,5 +182,6 @@ getPlutusDatum
getPlutusDatum L.SPlutusV1 (SpendingScriptDatum d) = Just d
getPlutusDatum L.SPlutusV2 (SpendingScriptDatum d) = Just d
getPlutusDatum L.SPlutusV3 (SpendingScriptDatum d) = d
getPlutusDatum L.SPlutusV4 (SpendingScriptDatum _d) = error "dijkstra"
getPlutusDatum _ InlineDatum = Nothing
getPlutusDatum _ NoScriptDatum = Nothing
1 change: 1 addition & 0 deletions cardano-api/src/Cardano/Api/Plutus.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ module Cardano.Api.Plutus
, PlutusScriptV1
, PlutusScriptV2
, PlutusScriptV3
, PlutusScriptV4
, ScriptLanguage (..)
, PlutusScriptVersion (..)
, AnyScriptLanguage (..)
Expand Down