Skip to content

Commit add91a3

Browse files
committed
Implement misc instances
1 parent 600f7b3 commit add91a3

File tree

6 files changed

+68
-3
lines changed

6 files changed

+68
-3
lines changed

cardano-api/src/Cardano/Api/Experimental/Plutus/Internal/ScriptWitness.hs

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ data PlutusScriptPurpose
9292
| -- | Witnesses a vote
9393
VotingScript
9494

95-
data NoScriptDatum = NoScriptDatumAllowed deriving Show
95+
data NoScriptDatum = NoScriptDatumAllowed deriving (Eq, Show)
9696

9797
-- | The PlutusScriptDatum type family is used to determine if a script datum is allowed
9898
-- for a given plutus script purpose and version. This change was proposed in CIP-69
@@ -130,6 +130,55 @@ data PlutusScriptDatum (lang :: L.Language) (purpose :: PlutusScriptPurpose) whe
130130
NoScriptDatum
131131
:: PlutusScriptDatum lang purpose
132132

133+
instance Eq (PlutusScriptDatum L.PlutusV1 SpendingScript) where
134+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
135+
(==) InlineDatum InlineDatum = True
136+
(==) NoScriptDatum NoScriptDatum = True
137+
(==) _ _ = False
138+
139+
instance Eq (PlutusScriptDatum L.PlutusV2 SpendingScript) where
140+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
141+
(==) InlineDatum InlineDatum = True
142+
(==) NoScriptDatum NoScriptDatum = True
143+
(==) _ _ = False
144+
145+
instance Eq (PlutusScriptDatum L.PlutusV3 SpendingScript) where
146+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
147+
(==) InlineDatum InlineDatum = True
148+
(==) NoScriptDatum NoScriptDatum = True
149+
(==) _ _ = False
150+
151+
instance Eq (PlutusScriptDatum L.PlutusV4 SpendingScript) where
152+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
153+
(==) InlineDatum InlineDatum = True
154+
(==) NoScriptDatum NoScriptDatum = True
155+
(==) _ _ = False
156+
157+
instance Eq (PlutusScriptDatum lang MintingScript) where
158+
(==) InlineDatum InlineDatum = True
159+
(==) NoScriptDatum NoScriptDatum = True
160+
(==) _ _ = False
161+
162+
instance Eq (PlutusScriptDatum lang WithdrawingScript) where
163+
(==) InlineDatum InlineDatum = True
164+
(==) NoScriptDatum NoScriptDatum = True
165+
(==) _ _ = False
166+
167+
instance Eq (PlutusScriptDatum lang CertifyingScript) where
168+
(==) InlineDatum InlineDatum = True
169+
(==) NoScriptDatum NoScriptDatum = True
170+
(==) _ _ = False
171+
172+
instance Eq (PlutusScriptDatum lang ProposingScript) where
173+
(==) InlineDatum InlineDatum = True
174+
(==) NoScriptDatum NoScriptDatum = True
175+
(==) _ _ = False
176+
177+
instance Eq (PlutusScriptDatum lang VotingScript) where
178+
(==) InlineDatum InlineDatum = True
179+
(==) NoScriptDatum NoScriptDatum = True
180+
(==) _ _ = False
181+
133182
instance Show (PlutusScriptDatum lang purpose) where
134183
show = \case
135184
SpendingScriptDatum _d -> "Datum"

cardano-api/src/Cardano/Api/Experimental/Plutus/Internal/Shim/LegacyScripts.hs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ legacyWitnessToScriptRequirements
192192
-> Either CBOR.DecoderError (TxScriptWitnessRequirements (ShelleyLedgerEra era))
193193
legacyWitnessToScriptRequirements eon wits = do
194194
r <- legacyWitnessConversion eon wits
195-
return $ getTxScriptWitnessesRequirements eon r
195+
return $
196+
alonzoEraOnwardsConstraints eon $
197+
obtainMonoidConstraint eon $
198+
getTxScriptWitnessesRequirements r
196199

197200
-- Misc helpers
198201

cardano-api/src/Cardano/Api/Internal/Orphans/Misc.hs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import Cardano.Ledger.Binary qualified as CBOR
2828
import Cardano.Ledger.Coin qualified as L
2929
import Cardano.Ledger.Conway.PParams qualified as Ledger
3030
import Cardano.Ledger.HKD (NoUpdate (..))
31+
import Cardano.Ledger.Plutus.Language qualified as L
3132
import Cardano.Ledger.Shelley.PParams qualified as Ledger
3233
import Ouroboros.Consensus.Cardano.Block (EraMismatch (..))
3334
import PlutusLedgerApi.Common qualified as P
@@ -39,6 +40,7 @@ import Data.ListMap qualified as ListMap
3940
import Data.Maybe.Strict (StrictMaybe (..))
4041
import Data.Monoid
4142
import Data.Text.Encoding.Error qualified as T
43+
import Data.Type.Equality
4244
import Data.Typeable
4345
import GHC.Exts (IsList (..))
4446
import Network.Mux qualified as Mux
@@ -295,3 +297,11 @@ instance Error P.ParseError where
295297
prettyError = pretty . show
296298

297299
deriving via ShowOf TypeRep instance Pretty TypeRep
300+
301+
instance TestEquality L.SLanguage where
302+
testEquality s1 s2 = case (s1, s2) of
303+
(L.SPlutusV1, L.SPlutusV1) -> Just Refl
304+
(L.SPlutusV2, L.SPlutusV2) -> Just Refl
305+
(L.SPlutusV3, L.SPlutusV3) -> Just Refl
306+
(L.SPlutusV4, L.SPlutusV4) -> Just Refl
307+
_ -> Nothing

cardano-api/src/Cardano/Api/Ledger/Internal/Reexport.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ module Cardano.Api.Ledger.Internal.Reexport
5656
, PoolCert (..)
5757
, PParams (..)
5858
, PParamsUpdate
59+
, SlotNo (..)
5960
, TxId (..)
6061
, TxIn (..)
6162
, Value
@@ -374,4 +375,4 @@ import Cardano.Ledger.Shelley.TxCert
374375
import Cardano.Ledger.State (PoolMetadata (..), PoolParams (..), StakePoolRelay (..))
375376
import Cardano.Ledger.TxIn (TxId (..), TxIn (..))
376377
import Cardano.Protocol.Crypto (Crypto, StandardCrypto)
377-
import Cardano.Slotting.Slot (EpochNo (..))
378+
import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..))

cardano-api/src/Cardano/Api/Tx/Internal/Body.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ module Cardano.Api.Tx.Internal.Body
207207
, toShelleyTxIn
208208
, toShelleyTxOut
209209
, toShelleyTxOutAny
210+
, toShelleyWithdrawal
210211
, fromShelleyTxId
211212
, fromShelleyTxIn
212213
, fromShelleyTxOut

cardano-api/src/Cardano/Api/Tx/Internal/Output.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ module Cardano.Api.Tx.Internal.Output
3131
, toShelleyTxOutAny
3232
, convTxOuts
3333
, fromLedgerTxOuts
34+
, toBabbageTxOutDatum
3435
, toByronTxOut
3536
-- ** An Output Value
3637
, TxOutValue (..)

0 commit comments

Comments
 (0)