Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions cardano-api/cardano-api.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,7 @@ test-suite cardano-api-golden
buildable: False
build-depends:
aeson,
aeson-pretty,
base64-bytestring,
bech32 >=1.1.0,
bytestring,
Expand Down Expand Up @@ -475,5 +476,6 @@ test-suite cardano-api-golden
Test.Golden.Cardano.Api.Genesis
Test.Golden.Cardano.Api.Ledger
Test.Golden.Cardano.Api.Script
Test.Golden.Cardano.Api.TxOut
Test.Golden.Cardano.Api.Value
Test.Golden.ErrorsSpec
11 changes: 7 additions & 4 deletions cardano-api/src/Cardano/Api/Address.hs
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ where

import Cardano.Api.Byron.Internal.Key
import Cardano.Api.Era
import Cardano.Api.Experimental.Era qualified as Exp
import Cardano.Api.HasTypeProxy
import Cardano.Api.Key.Internal
import Cardano.Api.Monad.Error
Expand Down Expand Up @@ -370,12 +371,14 @@ data AddressInEra era where
instance NFData (AddressInEra era) where
rnf (AddressInEra t a) = deepseq (deepseq t a) ()

instance IsCardanoEra era => ToJSON (AddressInEra era) where
toJSON = Aeson.String . serialiseAddress
instance Exp.IsEra era => ToJSON (AddressInEra era) where
toJSON =
Exp.obtainCommonConstraints (Exp.useEra @era) $
Aeson.String . serialiseAddress

instance IsShelleyBasedEra era => FromJSON (AddressInEra era) where
instance Exp.IsEra era => FromJSON (AddressInEra era) where
parseJSON =
let sbe = shelleyBasedEra @era
let sbe = convert (Exp.useEra @era)
in withText "AddressInEra" $ \txt -> do
addressAny <- P.runParserFail parseAddressAny txt
pure $ anyAddressInShelleyBasedEra sbe addressAny
Expand Down
11 changes: 5 additions & 6 deletions cardano-api/src/Cardano/Api/Plutus/Internal/Script.hs
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ import Cardano.Api.Era.Internal.Core
import Cardano.Api.Era.Internal.Eon.BabbageEraOnwards
import Cardano.Api.Era.Internal.Eon.ShelleyBasedEra
import Cardano.Api.Error
import Cardano.Api.Experimental.Era qualified as Exp
import Cardano.Api.HasTypeProxy
import Cardano.Api.Hash
import Cardano.Api.Key.Internal
Expand Down Expand Up @@ -1647,16 +1648,14 @@ deriving instance Eq (ReferenceScript era)

deriving instance Show (ReferenceScript era)

instance IsCardanoEra era => ToJSON (ReferenceScript era) where
instance Exp.IsEra era => ToJSON (ReferenceScript era) where
toJSON (ReferenceScript _ s) = object ["referenceScript" .= s]
toJSON ReferenceScriptNone = Aeson.Null

instance IsCardanoEra era => FromJSON (ReferenceScript era) where
instance Exp.IsEra era => FromJSON (ReferenceScript era) where
parseJSON = Aeson.withObject "ReferenceScript" $ \o ->
caseByronToAlonzoOrBabbageEraOnwards
(const (pure ReferenceScriptNone))
(\w -> ReferenceScript w <$> o .: "referenceScript")
(cardanoEra :: CardanoEra era)
let w = Exp.convert (Exp.useEra @era)
in ReferenceScript w <$> o .: "referenceScript"

refScriptToShelleyScript
:: ShelleyBasedEra era
Expand Down
Loading
Loading