@@ -10,8 +10,9 @@ import Data.Word (Word64)
10
10
import Hydra.Cardano.Api.CtxUTxO (ToUTxOContext (.. ))
11
11
import Hydra.Cardano.Api.Hash (unsafeScriptHashFromBytes )
12
12
import Hydra.Cardano.Api.MaryEraOnwards (maryEraOnwards )
13
+ import Hydra.Cardano.Api.PolicyId (fromPlutusCurrencySymbol )
13
14
import PlutusLedgerApi.V1.Value (flattenValue )
14
- import PlutusLedgerApi.V2 (CurrencySymbol , adaSymbol , adaToken , fromBuiltin , unCurrencySymbol , unTokenName )
15
+ import PlutusLedgerApi.V2 (adaSymbol , adaToken , fromBuiltin , unTokenName )
15
16
import PlutusLedgerApi.V2 qualified as Plutus
16
17
17
18
-- * Extras
@@ -82,13 +83,16 @@ toLedgerValue =
82
83
toMaryValue
83
84
84
85
-- | Convert a plutus 'Value' into a cardano-api 'Value'.
85
- fromPlutusValue :: Plutus. Value -> Value
86
- fromPlutusValue plutusValue =
87
- valueFromList $ map convertAsset $ flattenValue plutusValue
86
+ fromPlutusValue :: Plutus. Value -> Maybe Value
87
+ fromPlutusValue plutusValue = do
88
+ fmap valueFromList . mapM convertAsset $ flattenValue plutusValue
88
89
where
89
90
convertAsset (cs, tk, i)
90
- | cs == adaSymbol && tk == adaToken = (AdaAssetId , Quantity i)
91
- | otherwise = (AssetId (fromPlutusCurrencySymbol cs) (toAssetName tk), Quantity i)
91
+ | cs == adaSymbol && tk == adaToken =
92
+ pure (AdaAssetId , Quantity i)
93
+ | otherwise = do
94
+ pid <- fromPlutusCurrencySymbol cs
95
+ pure (AssetId pid (toAssetName tk), Quantity i)
92
96
93
97
toAssetName :: Plutus. TokenName -> AssetName
94
98
toAssetName = AssetName . fromBuiltin . unTokenName
@@ -97,15 +101,3 @@ fromPlutusValue plutusValue =
97
101
toPlutusValue :: Value -> Plutus. Value
98
102
toPlutusValue =
99
103
Ledger. transValue . toLedgerValue
100
-
101
- -- | Convert Cardano api 'PolicyId' to Plutus `CurrencySymbol`.
102
- toPlutusCurrencySymbol :: PolicyId -> CurrencySymbol
103
- toPlutusCurrencySymbol = Ledger. transPolicyID . toLedgerPolicyID
104
-
105
- -- | Convert a plutus 'CurrencySymbol' into a cardano-api 'PolicyId'.
106
- fromPlutusCurrencySymbol :: CurrencySymbol -> PolicyId
107
- fromPlutusCurrencySymbol = PolicyId . unsafeScriptHashFromBytes . fromBuiltin . unCurrencySymbol
108
-
109
- -- | Convert Cardano api 'PolicyId' to Cardano ledger `PolicyID`.
110
- toLedgerPolicyID :: PolicyId -> Ledger. PolicyID StandardCrypto
111
- toLedgerPolicyID (PolicyId sh) = Ledger. PolicyID (toShelleyScriptHash sh)
0 commit comments