module Singular.Registry.Wire.Redeemer
(
Migration (..)
, MintRedeemer (..)
, RequestAction (..)
, UpdateRedeemer (..)
, ConsumerRedeemer (..)
) where
import PlutusCore.Data (Data (..))
import PlutusTx.Builtins.Internal
( BuiltinByteString (..)
)
import PlutusTx.IsData.Class
( FromData (..)
, ToData (..)
, UnsafeFromData (..)
)
import Singular.Registry.Wire.Primitive
( OnChainTokenId (..)
, OnChainTxOutRef (..)
, bbsFromD
, bbsToD
, mkD
, unD
)
import Singular.Registry.Wire.Proof
( ProofStep (..)
)
data Migration = Migration
{ Migration -> BuiltinByteString
migrationOldPolicy :: !BuiltinByteString
, Migration -> OnChainTokenId
migrationTokenId :: !OnChainTokenId
}
deriving stock (Int -> Migration -> ShowS
[Migration] -> ShowS
Migration -> String
(Int -> Migration -> ShowS)
-> (Migration -> String)
-> ([Migration] -> ShowS)
-> Show Migration
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Migration -> ShowS
showsPrec :: Int -> Migration -> ShowS
$cshow :: Migration -> String
show :: Migration -> String
$cshowList :: [Migration] -> ShowS
showList :: [Migration] -> ShowS
Show, Migration -> Migration -> Bool
(Migration -> Migration -> Bool)
-> (Migration -> Migration -> Bool) -> Eq Migration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Migration -> Migration -> Bool
== :: Migration -> Migration -> Bool
$c/= :: Migration -> Migration -> Bool
/= :: Migration -> Migration -> Bool
Eq)
data MintRedeemer
=
Minting !OnChainTxOutRef
|
Migrating !Migration
|
Burning !OnChainTokenId
deriving stock (Int -> MintRedeemer -> ShowS
[MintRedeemer] -> ShowS
MintRedeemer -> String
(Int -> MintRedeemer -> ShowS)
-> (MintRedeemer -> String)
-> ([MintRedeemer] -> ShowS)
-> Show MintRedeemer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MintRedeemer -> ShowS
showsPrec :: Int -> MintRedeemer -> ShowS
$cshow :: MintRedeemer -> String
show :: MintRedeemer -> String
$cshowList :: [MintRedeemer] -> ShowS
showList :: [MintRedeemer] -> ShowS
Show, MintRedeemer -> MintRedeemer -> Bool
(MintRedeemer -> MintRedeemer -> Bool)
-> (MintRedeemer -> MintRedeemer -> Bool) -> Eq MintRedeemer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MintRedeemer -> MintRedeemer -> Bool
== :: MintRedeemer -> MintRedeemer -> Bool
$c/= :: MintRedeemer -> MintRedeemer -> Bool
/= :: MintRedeemer -> MintRedeemer -> Bool
Eq)
data RequestAction
=
Update ![ProofStep]
|
Rejected
deriving stock (Int -> RequestAction -> ShowS
[RequestAction] -> ShowS
RequestAction -> String
(Int -> RequestAction -> ShowS)
-> (RequestAction -> String)
-> ([RequestAction] -> ShowS)
-> Show RequestAction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RequestAction -> ShowS
showsPrec :: Int -> RequestAction -> ShowS
$cshow :: RequestAction -> String
show :: RequestAction -> String
$cshowList :: [RequestAction] -> ShowS
showList :: [RequestAction] -> ShowS
Show, RequestAction -> RequestAction -> Bool
(RequestAction -> RequestAction -> Bool)
-> (RequestAction -> RequestAction -> Bool) -> Eq RequestAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RequestAction -> RequestAction -> Bool
== :: RequestAction -> RequestAction -> Bool
$c/= :: RequestAction -> RequestAction -> Bool
/= :: RequestAction -> RequestAction -> Bool
Eq)
data UpdateRedeemer
=
End
|
Contribute !OnChainTxOutRef
|
Modify ![RequestAction]
|
Retract !OnChainTxOutRef
|
Sweep !OnChainTxOutRef
deriving stock (Int -> UpdateRedeemer -> ShowS
[UpdateRedeemer] -> ShowS
UpdateRedeemer -> String
(Int -> UpdateRedeemer -> ShowS)
-> (UpdateRedeemer -> String)
-> ([UpdateRedeemer] -> ShowS)
-> Show UpdateRedeemer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UpdateRedeemer -> ShowS
showsPrec :: Int -> UpdateRedeemer -> ShowS
$cshow :: UpdateRedeemer -> String
show :: UpdateRedeemer -> String
$cshowList :: [UpdateRedeemer] -> ShowS
showList :: [UpdateRedeemer] -> ShowS
Show, UpdateRedeemer -> UpdateRedeemer -> Bool
(UpdateRedeemer -> UpdateRedeemer -> Bool)
-> (UpdateRedeemer -> UpdateRedeemer -> Bool) -> Eq UpdateRedeemer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UpdateRedeemer -> UpdateRedeemer -> Bool
== :: UpdateRedeemer -> UpdateRedeemer -> Bool
$c/= :: UpdateRedeemer -> UpdateRedeemer -> Bool
/= :: UpdateRedeemer -> UpdateRedeemer -> Bool
Eq)
data ConsumerRedeemer
= Hook
deriving stock (Int -> ConsumerRedeemer -> ShowS
[ConsumerRedeemer] -> ShowS
ConsumerRedeemer -> String
(Int -> ConsumerRedeemer -> ShowS)
-> (ConsumerRedeemer -> String)
-> ([ConsumerRedeemer] -> ShowS)
-> Show ConsumerRedeemer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConsumerRedeemer -> ShowS
showsPrec :: Int -> ConsumerRedeemer -> ShowS
$cshow :: ConsumerRedeemer -> String
show :: ConsumerRedeemer -> String
$cshowList :: [ConsumerRedeemer] -> ShowS
showList :: [ConsumerRedeemer] -> ShowS
Show, ConsumerRedeemer -> ConsumerRedeemer -> Bool
(ConsumerRedeemer -> ConsumerRedeemer -> Bool)
-> (ConsumerRedeemer -> ConsumerRedeemer -> Bool)
-> Eq ConsumerRedeemer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConsumerRedeemer -> ConsumerRedeemer -> Bool
== :: ConsumerRedeemer -> ConsumerRedeemer -> Bool
$c/= :: ConsumerRedeemer -> ConsumerRedeemer -> Bool
/= :: ConsumerRedeemer -> ConsumerRedeemer -> Bool
Eq)
instance ToData Migration where
toBuiltinData :: Migration -> BuiltinData
toBuiltinData Migration{BuiltinByteString
OnChainTokenId
migrationOldPolicy :: Migration -> BuiltinByteString
migrationTokenId :: Migration -> OnChainTokenId
migrationOldPolicy :: BuiltinByteString
migrationTokenId :: OnChainTokenId
..} =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$
Integer -> [Data] -> Data
Constr
Integer
0
[ BuiltinByteString -> Data
bbsToD BuiltinByteString
migrationOldPolicy
, BuiltinData -> Data
unD
(OnChainTokenId -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTokenId
migrationTokenId)
]
instance FromData Migration where
fromBuiltinData :: BuiltinData -> Maybe Migration
fromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [Data
pol, Data
tid] -> do
migrationOldPolicy <- Data -> Maybe BuiltinByteString
bbsFromD Data
pol
migrationTokenId <-
fromBuiltinData (mkD tid)
Just Migration{..}
Data
_ -> Maybe Migration
forall a. Maybe a
Nothing
instance UnsafeFromData Migration where
unsafeFromBuiltinData :: BuiltinData -> Migration
unsafeFromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [B ByteString
pol, Data
tid] ->
Migration
{ migrationOldPolicy :: BuiltinByteString
migrationOldPolicy =
ByteString -> BuiltinByteString
BuiltinByteString ByteString
pol
, migrationTokenId :: OnChainTokenId
migrationTokenId =
BuiltinData -> OnChainTokenId
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
tid)
}
Data
_ ->
String -> Migration
forall a. HasCallStack => String -> a
error
String
"unsafeFromBuiltinData: Migration"
instance ToData MintRedeemer where
toBuiltinData :: MintRedeemer -> BuiltinData
toBuiltinData (Minting OnChainTxOutRef
ref) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
0 [BuiltinData -> Data
unD (OnChainTxOutRef -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTxOutRef
ref)]
toBuiltinData (Migrating Migration
m) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
1 [BuiltinData -> Data
unD (Migration -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData Migration
m)]
toBuiltinData (Burning OnChainTokenId
tokenId) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
2 [BuiltinData -> Data
unD (OnChainTokenId -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTokenId
tokenId)]
instance FromData MintRedeemer where
fromBuiltinData :: BuiltinData -> Maybe MintRedeemer
fromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [Data
d] -> OnChainTxOutRef -> MintRedeemer
Minting (OnChainTxOutRef -> MintRedeemer)
-> Maybe OnChainTxOutRef -> Maybe MintRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe OnChainTxOutRef
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
1 [Data
d] ->
Migration -> MintRedeemer
Migrating (Migration -> MintRedeemer)
-> Maybe Migration -> Maybe MintRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe Migration
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
2 [Data
d] -> OnChainTokenId -> MintRedeemer
Burning (OnChainTokenId -> MintRedeemer)
-> Maybe OnChainTokenId -> Maybe MintRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe OnChainTokenId
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Data
_ -> Maybe MintRedeemer
forall a. Maybe a
Nothing
instance UnsafeFromData MintRedeemer where
unsafeFromBuiltinData :: BuiltinData -> MintRedeemer
unsafeFromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [Data
d] ->
OnChainTxOutRef -> MintRedeemer
Minting (OnChainTxOutRef -> MintRedeemer)
-> OnChainTxOutRef -> MintRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> OnChainTxOutRef
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
1 [Data
d] ->
Migration -> MintRedeemer
Migrating (Migration -> MintRedeemer) -> Migration -> MintRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> Migration
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
2 [Data
d] ->
OnChainTokenId -> MintRedeemer
Burning (OnChainTokenId -> MintRedeemer) -> OnChainTokenId -> MintRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> OnChainTokenId
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Data
_ ->
String -> MintRedeemer
forall a. HasCallStack => String -> a
error
String
"unsafeFromBuiltinData: MintRedeemer"
instance ToData RequestAction where
toBuiltinData :: RequestAction -> BuiltinData
toBuiltinData (Update [ProofStep]
steps) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$
Integer -> [Data] -> Data
Constr
Integer
0
[ [Data] -> Data
List ([Data] -> Data) -> [Data] -> Data
forall a b. (a -> b) -> a -> b
$
(ProofStep -> Data) -> [ProofStep] -> [Data]
forall a b. (a -> b) -> [a] -> [b]
map (BuiltinData -> Data
unD (BuiltinData -> Data)
-> (ProofStep -> BuiltinData) -> ProofStep -> Data
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ProofStep -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData) [ProofStep]
steps
]
toBuiltinData RequestAction
Rejected = Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
1 []
instance FromData RequestAction where
fromBuiltinData :: BuiltinData -> Maybe RequestAction
fromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [List [Data]
steps] ->
[ProofStep] -> RequestAction
Update
([ProofStep] -> RequestAction)
-> Maybe [ProofStep] -> Maybe RequestAction
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Data -> Maybe ProofStep) -> [Data] -> Maybe [ProofStep]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse
(BuiltinData -> Maybe ProofStep
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (BuiltinData -> Maybe ProofStep)
-> (Data -> BuiltinData) -> Data -> Maybe ProofStep
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Data -> BuiltinData
mkD)
[Data]
steps
Constr Integer
1 [] -> RequestAction -> Maybe RequestAction
forall a. a -> Maybe a
Just RequestAction
Rejected
Data
_ -> Maybe RequestAction
forall a. Maybe a
Nothing
instance UnsafeFromData RequestAction where
unsafeFromBuiltinData :: BuiltinData -> RequestAction
unsafeFromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [List [Data]
steps] ->
[ProofStep] -> RequestAction
Update ([ProofStep] -> RequestAction) -> [ProofStep] -> RequestAction
forall a b. (a -> b) -> a -> b
$
(Data -> ProofStep) -> [Data] -> [ProofStep]
forall a b. (a -> b) -> [a] -> [b]
map
(BuiltinData -> ProofStep
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (BuiltinData -> ProofStep)
-> (Data -> BuiltinData) -> Data -> ProofStep
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Data -> BuiltinData
mkD)
[Data]
steps
Constr Integer
1 [] -> RequestAction
Rejected
Data
_ ->
String -> RequestAction
forall a. HasCallStack => String -> a
error
String
"unsafeFromBuiltinData:\
\ RequestAction"
instance ToData UpdateRedeemer where
toBuiltinData :: UpdateRedeemer -> BuiltinData
toBuiltinData UpdateRedeemer
End = Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
0 []
toBuiltinData (Contribute OnChainTxOutRef
ref) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
1 [BuiltinData -> Data
unD (OnChainTxOutRef -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTxOutRef
ref)]
toBuiltinData (Modify [RequestAction]
actions) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$
Integer -> [Data] -> Data
Constr
Integer
2
[ [Data] -> Data
List ([Data] -> Data) -> [Data] -> Data
forall a b. (a -> b) -> a -> b
$
(RequestAction -> Data) -> [RequestAction] -> [Data]
forall a b. (a -> b) -> [a] -> [b]
map (BuiltinData -> Data
unD (BuiltinData -> Data)
-> (RequestAction -> BuiltinData) -> RequestAction -> Data
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RequestAction -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData) [RequestAction]
actions
]
toBuiltinData (Retract OnChainTxOutRef
ref) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
3 [BuiltinData -> Data
unD (OnChainTxOutRef -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTxOutRef
ref)]
toBuiltinData (Sweep OnChainTxOutRef
ref) =
Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
4 [BuiltinData -> Data
unD (OnChainTxOutRef -> BuiltinData
forall a. ToData a => a -> BuiltinData
toBuiltinData OnChainTxOutRef
ref)]
instance FromData UpdateRedeemer where
fromBuiltinData :: BuiltinData -> Maybe UpdateRedeemer
fromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [] -> UpdateRedeemer -> Maybe UpdateRedeemer
forall a. a -> Maybe a
Just UpdateRedeemer
End
Constr Integer
1 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Contribute (OnChainTxOutRef -> UpdateRedeemer)
-> Maybe OnChainTxOutRef -> Maybe UpdateRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe OnChainTxOutRef
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
2 [List [Data]
as] ->
[RequestAction] -> UpdateRedeemer
Modify
([RequestAction] -> UpdateRedeemer)
-> Maybe [RequestAction] -> Maybe UpdateRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Data -> Maybe RequestAction) -> [Data] -> Maybe [RequestAction]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse
(BuiltinData -> Maybe RequestAction
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (BuiltinData -> Maybe RequestAction)
-> (Data -> BuiltinData) -> Data -> Maybe RequestAction
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Data -> BuiltinData
mkD)
[Data]
as
Constr Integer
3 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Retract (OnChainTxOutRef -> UpdateRedeemer)
-> Maybe OnChainTxOutRef -> Maybe UpdateRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe OnChainTxOutRef
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
4 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Sweep (OnChainTxOutRef -> UpdateRedeemer)
-> Maybe OnChainTxOutRef -> Maybe UpdateRedeemer
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BuiltinData -> Maybe OnChainTxOutRef
forall a. FromData a => BuiltinData -> Maybe a
fromBuiltinData (Data -> BuiltinData
mkD Data
d)
Data
_ -> Maybe UpdateRedeemer
forall a. Maybe a
Nothing
instance UnsafeFromData UpdateRedeemer where
unsafeFromBuiltinData :: BuiltinData -> UpdateRedeemer
unsafeFromBuiltinData BuiltinData
bd = case BuiltinData -> Data
unD BuiltinData
bd of
Constr Integer
0 [] -> UpdateRedeemer
End
Constr Integer
1 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Contribute (OnChainTxOutRef -> UpdateRedeemer)
-> OnChainTxOutRef -> UpdateRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> OnChainTxOutRef
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
2 [List [Data]
as] ->
[RequestAction] -> UpdateRedeemer
Modify ([RequestAction] -> UpdateRedeemer)
-> [RequestAction] -> UpdateRedeemer
forall a b. (a -> b) -> a -> b
$
(Data -> RequestAction) -> [Data] -> [RequestAction]
forall a b. (a -> b) -> [a] -> [b]
map
(BuiltinData -> RequestAction
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (BuiltinData -> RequestAction)
-> (Data -> BuiltinData) -> Data -> RequestAction
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Data -> BuiltinData
mkD)
[Data]
as
Constr Integer
3 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Retract (OnChainTxOutRef -> UpdateRedeemer)
-> OnChainTxOutRef -> UpdateRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> OnChainTxOutRef
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Constr Integer
4 [Data
d] ->
OnChainTxOutRef -> UpdateRedeemer
Sweep (OnChainTxOutRef -> UpdateRedeemer)
-> OnChainTxOutRef -> UpdateRedeemer
forall a b. (a -> b) -> a -> b
$
BuiltinData -> OnChainTxOutRef
forall a. UnsafeFromData a => BuiltinData -> a
unsafeFromBuiltinData (Data -> BuiltinData
mkD Data
d)
Data
_ ->
String -> UpdateRedeemer
forall a. HasCallStack => String -> a
error
String
"unsafeFromBuiltinData:\
\ UpdateRedeemer"
instance ToData ConsumerRedeemer where
toBuiltinData :: ConsumerRedeemer -> BuiltinData
toBuiltinData ConsumerRedeemer
Hook = Data -> BuiltinData
mkD (Data -> BuiltinData) -> Data -> BuiltinData
forall a b. (a -> b) -> a -> b
$ Integer -> [Data] -> Data
Constr Integer
0 []