Skip to content

Commit 911a522

Browse files
committed
WIP
1 parent ed4cae0 commit 911a522

File tree

1 file changed

+24
-6
lines changed
  • eras/dijkstra/src/Cardano/Ledger/Dijkstra

1 file changed

+24
-6
lines changed

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

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
{-# LANGUAGE DataKinds #-}
2+
{-# LANGUAGE DeriveGeneric #-}
23
{-# LANGUAGE DerivingStrategies #-}
34
{-# LANGUAGE FlexibleInstances #-}
45
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
56
{-# LANGUAGE LambdaCase #-}
7+
{-# LANGUAGE TypeApplications #-}
68
{-# LANGUAGE TypeFamilies #-}
79
{-# LANGUAGE UndecidableInstances #-}
810
{-# OPTIONS_GHC -Wno-orphans #-}
911

1012
module Cardano.Ledger.Dijkstra.Scripts (PlutusScript (..)) where
1113

14+
import Cardano.Ledger.Address (RewardAccount)
1215
import Cardano.Ledger.Allegra.Scripts (
1316
AllegraEraScript (..),
1417
Timelock,
@@ -33,30 +36,45 @@ import Cardano.Ledger.Alonzo.Scripts (
3336
AsIx (..),
3437
alonzoScriptPrefixTag,
3538
)
36-
import Cardano.Ledger.Conway (ConwayEra)
39+
import Cardano.Ledger.Conway.Governance (ProposalProcedure, Voter)
3740
import Cardano.Ledger.Conway.Scripts (
3841
ConwayEraScript (..),
3942
ConwayPlutusPurpose (..),
4043
PlutusScript (..),
4144
)
42-
import Cardano.Ledger.Core (EraScript (..), SafeToHash)
45+
import Cardano.Ledger.Core (EraScript (..), EraTxCert (..), SafeToHash (..), ScriptHash)
4346
import Cardano.Ledger.Dijkstra.Era (DijkstraEra)
4447
import Cardano.Ledger.Dijkstra.PParams ()
4548
import Cardano.Ledger.Dijkstra.TxCert ()
46-
import Cardano.Ledger.Plutus (Language (..))
49+
import Cardano.Ledger.Mary.Value (PolicyID)
50+
import Cardano.Ledger.Plutus (Language (..), Plutus, SLanguage (..), plutusSLanguage)
4751
import Cardano.Ledger.Shelley.Scripts (ShelleyEraScript (..))
48-
import Control.DeepSeq (NFData)
49-
import Data.MemPack (MemPack (..))
52+
import Cardano.Ledger.TxIn (TxIn)
53+
import Control.DeepSeq (NFData (..), rwhnf)
54+
import Data.MemPack (MemPack (..), packTagM, packedTagByteCount, unknownTagM, unpackTagM)
55+
import Data.Word (Word32)
5056
import GHC.Generics (Generic)
5157
import NoThunks.Class (NoThunks)
5258

59+
data DijkstraPlutusPurpose f era
60+
= DijkstraSpending !(f Word32 TxIn)
61+
| DijkstraMinting !(f Word32 PolicyID)
62+
| DijkstraCertifying !(f Word32 (TxCert era))
63+
| DijkstraRewarding !(f Word32 RewardAccount)
64+
| DijkstraVoting !(f Word32 Voter)
65+
| DijkstraProposing !(f Word32 (ProposalProcedure era))
66+
| DijkstraGuarding !(f Word32 ScriptHash)
67+
deriving (Generic)
68+
5369
instance EraScript DijkstraEra where
5470
type Script DijkstraEra = AlonzoScript DijkstraEra
5571
type NativeScript DijkstraEra = Timelock DijkstraEra
5672

5773
upgradeScript = \case
5874
TimelockScript ts -> TimelockScript $ translateTimelock ts
59-
PlutusScript ps -> PlutusScript $ MkDijkstraPlutusScript ps
75+
PlutusScript (ConwayPlutusV1 s) -> PlutusScript $ DijkstraPlutusV1 s
76+
PlutusScript (ConwayPlutusV2 s) -> PlutusScript $ DijkstraPlutusV2 s
77+
PlutusScript (ConwayPlutusV3 s) -> PlutusScript $ DijkstraPlutusV3 s
6078

6179
scriptPrefixTag = alonzoScriptPrefixTag
6280

0 commit comments

Comments
 (0)