File tree Expand file tree Collapse file tree
cardano-api/src/Cardano/Api Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -67,6 +67,8 @@ module Cardano.Api.Experimental
6767 -- ** Plutus related
6868 , PlutusScriptInEra (.. )
6969 , PlutusScriptOrReferenceInput (.. )
70+ , serialiseAnyPlutusScriptToTextEnvelope
71+ , deserialiseAnyPlutusScriptFromTextEnvelope
7072 , IndexedPlutusScriptWitness (.. )
7173 , PlutusScriptPurpose (.. )
7274 , PlutusScriptDatum (.. )
Original file line number Diff line number Diff line change @@ -2,6 +2,8 @@ module Cardano.Api.Experimental.Plutus
22 ( -- * Plutus Script
33 AnyPlutusScript (.. )
44 , decodeAnyPlutusScript
5+ , serialiseAnyPlutusScriptToTextEnvelope
6+ , deserialiseAnyPlutusScriptFromTextEnvelope
57 , PlutusScriptInEra (.. )
68 , AnyPlutusScriptLanguage (.. )
79 , deserialisePlutusScriptInEra
Original file line number Diff line number Diff line change 1111module Cardano.Api.Experimental.Plutus.Internal.Script
1212 ( AnyPlutusScript (.. )
1313 , decodeAnyPlutusScript
14+ , serialiseAnyPlutusScriptToTextEnvelope
15+ , deserialiseAnyPlutusScriptFromTextEnvelope
1416 , AnyPlutusScriptLanguage (.. )
1517 , PlutusScriptInEra (.. )
1618 , PlutusScriptOrReferenceInput (.. )
@@ -201,3 +203,27 @@ data AnyPlutusScriptLanguage where
201203 AnyPlutusScriptLanguage
202204 :: L. PlutusLanguage lang
203205 => L. SLanguage lang -> AnyPlutusScriptLanguage
206+
207+ serialiseAnyPlutusScriptToTextEnvelope
208+ :: Maybe TextEnvelopeDescr -> AnyPlutusScript era -> TextEnvelope
209+ serialiseAnyPlutusScriptToTextEnvelope mbDescr (AnyPlutusScript script) =
210+ obtainLangConstraints (plutusScriptInEraSLanguage script) $
211+ serialiseToTextEnvelope mbDescr script
212+
213+ deserialiseAnyPlutusScriptFromTextEnvelope
214+ :: forall era
215+ . L. Era era
216+ => TextEnvelope
217+ -> Either TextEnvelopeError (AnyPlutusScript era )
218+ deserialiseAnyPlutusScriptFromTextEnvelope =
219+ deserialiseFromTextEnvelopeAnyOf textEnvTypes
220+ where
221+ textEnvTypes :: [FromSomeType HasTextEnvelope (AnyPlutusScript era )]
222+ textEnvTypes =
223+ map
224+ ( \ l ->
225+ Plutus. withSLanguage l $ \ (slang :: Plutus. SLanguage l ) ->
226+ obtainLangConstraints slang $
227+ FromSomeType (asType @ (PlutusScriptInEra l era )) AnyPlutusScript
228+ )
229+ Plutus. nonNativeLanguages
You can’t perform that action at this time.
0 commit comments