Skip to content

Commit

Permalink
Inline some render functions
Browse files Browse the repository at this point in the history
  • Loading branch information
newhoggy committed May 23, 2022
1 parent ba839d6 commit cdfb5ca
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 29 deletions.
26 changes: 2 additions & 24 deletions cardano-api/src/Cardano/Api/Alonzo/Render.hs
@@ -1,40 +1,18 @@
module Cardano.Api.Alonzo.Render
( renderScriptPurpose
, renderBadInputsUTxOErr
( renderBadInputsUTxOErr
, renderValueNotConservedErr
, renderTxId
) where

import Cardano.Ledger.Crypto (StandardCrypto)
import Cardano.Ledger.Shelley.API hiding (ShelleyBasedEra)
import Cardano.Prelude
import Data.Aeson (ToJSON (..), Value(..), object, (.=))
import Data.Aeson (Value(..))
import Ouroboros.Consensus.Shelley.Ledger hiding (TxId)
import Prelude hiding ((.), map, show)

import qualified Cardano.Api.Address as Api
import qualified Cardano.Api.Certificate as Api
import qualified Cardano.Api.Ledger.Mary as Api
import qualified Cardano.Api.SerialiseTextEnvelope as Api
import qualified Cardano.Api.TxBody as Api
import qualified Cardano.Ledger.Alonzo.Tx as Alonzo
import qualified Data.Set as Set
import qualified Ouroboros.Consensus.Ledger.SupportsMempool as Consensus

renderScriptPurpose :: Alonzo.ScriptPurpose StandardCrypto -> Value
renderScriptPurpose (Alonzo.Minting pid) = object
[ "minting" .= toJSON (Api.PolicyID pid)
]
renderScriptPurpose (Alonzo.Spending txin) = object
[ "spending" .= Api.fromShelleyTxIn txin
]
renderScriptPurpose (Alonzo.Rewarding rwdAcct) = object
[ "rewarding" .= String (Api.serialiseAddress $ Api.fromShelleyStakeAddr rwdAcct)
]
renderScriptPurpose (Alonzo.Certifying cert) = object
[ "certifying" .= toJSON (Api.textEnvelopeDefaultDescr $ Api.fromShelleyCertificate cert)
]

renderBadInputsUTxOErr :: Set (TxIn era) -> Value
renderBadInputsUTxOErr txIns
| Set.null txIns = String "The transaction contains no inputs."
Expand Down
24 changes: 19 additions & 5 deletions cardano-api/src/Cardano/Api/Orphans.hs
Expand Up @@ -25,7 +25,6 @@

module Cardano.Api.Orphans () where

import Cardano.Api.Alonzo.Render (renderScriptPurpose)
import Cardano.Api.Script
import Cardano.Api.SerialiseRaw (serialiseToRawBytesHexText)
import Cardano.Ledger.Alonzo.Rules.Bbody (AlonzoBbodyPredFail)
Expand Down Expand Up @@ -84,10 +83,13 @@ import Ouroboros.Network.Block (blockHash, blockNo, blockSlot)
import Ouroboros.Network.Point (WithOrigin, withOriginToMaybe)
import Prelude hiding ((.), map, show)

import qualified Cardano.Api.Address as Api
import qualified Cardano.Api.Alonzo.Render as Render
import qualified Cardano.Api.Certificate as Api
import qualified Cardano.Api.Ledger.Mary as Api
import qualified Cardano.Api.Script as Api
import qualified Cardano.Api.SerialiseRaw as Api
import qualified Cardano.Api.SerialiseTextEnvelope as Api
import qualified Cardano.Api.TxBody as Api
import qualified Cardano.Crypto.Hash as Hash
import qualified Cardano.Crypto.Hash.Class as Crypto
Expand Down Expand Up @@ -719,7 +721,19 @@ instance
]

instance ToJSON (Alonzo.ScriptPurpose StandardCrypto) where
toJSON = renderScriptPurpose
toJSON = \case
Alonzo.Minting pid -> object
[ "minting" .= toJSON (Api.PolicyID pid)
]
Alonzo.Spending txin -> object
[ "spending" .= Api.fromShelleyTxIn txin
]
Alonzo.Rewarding rwdAcct -> object
[ "rewarding" .= String (Api.serialiseAddress $ Api.fromShelleyStakeAddr rwdAcct)
]
Alonzo.Certifying cert -> object
[ "certifying" .= toJSON (Api.textEnvelopeDefaultDescr $ Api.fromShelleyCertificate cert)
]

instance ToJSONKey (Shelley.ScriptHash StandardCrypto) where
toJSONKey = contramap (Api.serialiseToRawBytesHexText . Api.ScriptHash) toJSONKey
Expand Down Expand Up @@ -1434,9 +1448,9 @@ deriving newtype instance ToJSON Alonzo.IsValid
instance ToJSON (Alonzo.CollectError StandardCrypto) where
toJSON = \case
Alonzo.NoRedeemer sPurpose -> object
[ "kind" .= String "CollectError"
, "error" .= String "NoRedeemer"
, "scriptpurpose" .= renderScriptPurpose sPurpose
[ "kind" .= String "CollectError"
, "error" .= String "NoRedeemer"
, "scriptpurpose" .= do sPurpose :: Alonzo.ScriptPurpose StandardCrypto
]
Alonzo.NoWitness sHash -> object
[ "kind" .= String "CollectError"
Expand Down

0 comments on commit cdfb5ca

Please sign in to comment.