@@ -40,6 +40,7 @@ import qualified Cardano.Ledger.Alonzo.Tx as Alonzo
4040import Cardano.Ledger.BaseTypes (Mismatch (.. ), Relation (.. ))
4141import Cardano.Ledger.Conway.Scripts (ConwayPlutusPurpose (.. ))
4242import qualified Cardano.Ledger.Core as Ledger
43+ import Cardano.Ledger.Dijkstra.Scripts (DijkstraPlutusPurpose (.. ))
4344import qualified Cardano.Ledger.Hashes as Hashes
4445import Cardano.Logging
4546import Cardano.Node.Queries (ConvertTxId (.. ))
@@ -225,8 +226,7 @@ renderScriptPurpose =
225226 Api. AlonzoEraOnwardsAlonzo -> renderAlonzoPlutusPurpose
226227 Api. AlonzoEraOnwardsBabbage -> renderAlonzoPlutusPurpose
227228 Api. AlonzoEraOnwardsConway -> renderConwayPlutusPurpose
228- -- TODO: fix
229- Api. AlonzoEraOnwardsDijkstra -> undefined
229+ Api. AlonzoEraOnwardsDijkstra -> renderDijkstraPlutusPurpose
230230 )
231231
232232renderAlonzoPlutusPurpose :: ()
@@ -260,3 +260,23 @@ renderConwayPlutusPurpose = \case
260260 Aeson. object [" voting" .= Aeson. toJSON voter]
261261 ConwayProposing proposal ->
262262 Aeson. object [" proposing" .= Aeson. toJSON proposal]
263+
264+ renderDijkstraPlutusPurpose :: ()
265+ => (Ledger. EraPParams era , Aeson. ToJSON (Ledger. TxCert era ))
266+ => DijkstraPlutusPurpose AsItem era
267+ -> Aeson. Value
268+ renderDijkstraPlutusPurpose = \ case
269+ DijkstraSpending (AsItem txin) ->
270+ Aeson. object [" spending" .= Api. fromShelleyTxIn txin]
271+ DijkstraMinting pid ->
272+ Aeson. object [" minting" .= Aeson. toJSON pid]
273+ DijkstraRewarding (AsItem rwdAcct) ->
274+ Aeson. object [" rewarding" .= Aeson. String (Api. serialiseAddress $ Api. fromShelleyStakeAddr rwdAcct)]
275+ DijkstraCertifying cert ->
276+ Aeson. object [" certifying" .= Aeson. toJSON cert]
277+ DijkstraVoting voter ->
278+ Aeson. object [" voting" .= Aeson. toJSON voter]
279+ DijkstraProposing proposal ->
280+ Aeson. object [" proposing" .= Aeson. toJSON proposal]
281+ DijkstraGuarding sHash ->
282+ Aeson. object [" guarding" .= Aeson. toJSON sHash]
0 commit comments