1
1
{-# LANGUAGE DataKinds #-}
2
+ {-# LANGUAGE DeriveGeneric #-}
2
3
{-# LANGUAGE DerivingStrategies #-}
3
4
{-# LANGUAGE FlexibleInstances #-}
4
5
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5
6
{-# LANGUAGE LambdaCase #-}
7
+ {-# LANGUAGE TypeApplications #-}
6
8
{-# LANGUAGE TypeFamilies #-}
7
9
{-# LANGUAGE UndecidableInstances #-}
8
10
{-# OPTIONS_GHC -Wno-orphans #-}
9
11
10
12
module Cardano.Ledger.Dijkstra.Scripts (PlutusScript (.. )) where
11
13
14
+ import Cardano.Ledger.Address (RewardAccount )
12
15
import Cardano.Ledger.Allegra.Scripts (
13
16
AllegraEraScript (.. ),
14
17
Timelock ,
@@ -33,30 +36,45 @@ import Cardano.Ledger.Alonzo.Scripts (
33
36
AsIx (.. ),
34
37
alonzoScriptPrefixTag ,
35
38
)
36
- import Cardano.Ledger.Conway ( ConwayEra )
39
+ import Cardano.Ledger.Conway.Governance ( ProposalProcedure , Voter )
37
40
import Cardano.Ledger.Conway.Scripts (
38
41
ConwayEraScript (.. ),
39
42
ConwayPlutusPurpose (.. ),
40
43
PlutusScript (.. ),
41
44
)
42
- import Cardano.Ledger.Core (EraScript (.. ), SafeToHash )
45
+ import Cardano.Ledger.Core (EraScript (.. ), EraTxCert ( .. ), SafeToHash ( .. ), ScriptHash )
43
46
import Cardano.Ledger.Dijkstra.Era (DijkstraEra )
44
47
import Cardano.Ledger.Dijkstra.PParams ()
45
48
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 )
47
51
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 )
50
56
import GHC.Generics (Generic )
51
57
import NoThunks.Class (NoThunks )
52
58
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
+
53
69
instance EraScript DijkstraEra where
54
70
type Script DijkstraEra = AlonzoScript DijkstraEra
55
71
type NativeScript DijkstraEra = Timelock DijkstraEra
56
72
57
73
upgradeScript = \ case
58
74
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
60
78
61
79
scriptPrefixTag = alonzoScriptPrefixTag
62
80
0 commit comments