{-# LANGUAGE NoImplicitPrelude #-}
module Cooked.ShowBS (ShowBS (..)) where
import PlutusLedgerApi.V3 qualified as Api
import PlutusTx.AssocMap qualified as Map
import PlutusTx.Builtins
import PlutusTx.Prelude
import PlutusTx.Ratio hiding (negate)
class ShowBS a where
showBS :: a -> BuiltinString
{-# INLINEABLE showBSParen #-}
showBSParen :: BuiltinString -> BuiltinString
showBSParen :: BuiltinString -> BuiltinString
showBSParen BuiltinString
s = BuiltinString
"(" BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
s BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
")"
{-# INLINEABLE application1 #-}
application1 :: (ShowBS a) => BuiltinString -> a -> BuiltinString
application1 :: forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
bs a
x = BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
bs BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS a
x
{-# INLINEABLE application2 #-}
application2 :: (ShowBS a, ShowBS b) => BuiltinString -> a -> b -> BuiltinString
application2 :: forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
bs a
x b
y = BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
bs BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS a
x BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> b -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS b
y
{-# INLINEABLE application3 #-}
application3 :: (ShowBS a, ShowBS b, ShowBS c) => BuiltinString -> a -> b -> c -> BuiltinString
application3 :: forall a b c.
(ShowBS a, ShowBS b, ShowBS c) =>
BuiltinString -> a -> b -> c -> BuiltinString
application3 BuiltinString
bs a
x b
y c
z = BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
bs BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS a
x BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> b -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS b
y BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> c -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS c
z
{-# INLINEABLE application4 #-}
application4 :: (ShowBS a, ShowBS b, ShowBS c, ShowBS d) => BuiltinString -> a -> b -> c -> d -> BuiltinString
application4 :: forall a b c d.
(ShowBS a, ShowBS b, ShowBS c, ShowBS d) =>
BuiltinString -> a -> b -> c -> d -> BuiltinString
application4 BuiltinString
bs a
x b
y c
z d
w = BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
bs BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS a
x BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> b -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS b
y BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> c -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS c
z BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> d -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS d
w
instance ShowBS Integer where
{-# INLINEABLE showBS #-}
showBS :: Integer -> BuiltinString
showBS Integer
i = [BuiltinString] -> BuiltinString
forall a. Monoid a => [a] -> a
mconcat (Integer -> [BuiltinString]
integerToDigits Integer
i)
{-# INLINEABLE integerToDigits #-}
integerToDigits :: Integer -> [BuiltinString]
integerToDigits :: Integer -> [BuiltinString]
integerToDigits Integer
n
| Integer
n Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
< Integer
0 = BuiltinString
"-" BuiltinString -> [BuiltinString] -> [BuiltinString]
forall a. a -> [a] -> [a]
: Integer -> [BuiltinString] -> [BuiltinString]
go (Integer -> Integer
forall a. AdditiveGroup a => a -> a
negate Integer
n) []
| Integer
n Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
0 = [BuiltinString
"0"]
| Bool
otherwise = Integer -> [BuiltinString] -> [BuiltinString]
go Integer
n []
where
go :: Integer -> [BuiltinString] -> [BuiltinString]
go Integer
i [BuiltinString]
acc
| Integer
i Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
0 = [BuiltinString]
acc
| Bool
otherwise = let (Integer
q, Integer
r) = Integer -> Integer -> (Integer, Integer)
quotRem Integer
i Integer
10 in Integer -> [BuiltinString] -> [BuiltinString]
go Integer
q (Integer -> BuiltinString
digitToBS Integer
r BuiltinString -> [BuiltinString] -> [BuiltinString]
forall a. a -> [a] -> [a]
: [BuiltinString]
acc)
{-# INLINEABLE digitToBS #-}
digitToBS :: Integer -> BuiltinString
digitToBS :: Integer -> BuiltinString
digitToBS Integer
x
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
0 = BuiltinString
"0"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
1 = BuiltinString
"1"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
2 = BuiltinString
"2"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
3 = BuiltinString
"3"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
4 = BuiltinString
"4"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
5 = BuiltinString
"5"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
6 = BuiltinString
"6"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
7 = BuiltinString
"7"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
8 = BuiltinString
"8"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
9 = BuiltinString
"9"
| Bool
otherwise = BuiltinString
"?"
instance (ShowBS a) => ShowBS [a] where
{-# INLINEABLE showBS #-}
showBS :: [a] -> BuiltinString
showBS = BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
forall a.
BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
catList BuiltinString
"[" BuiltinString
"," BuiltinString
"]" a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS
{-# INLINEABLE catList #-}
catList :: BuiltinString -> BuiltinString -> BuiltinString -> (a -> BuiltinString) -> [a] -> BuiltinString
catList :: forall a.
BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
catList BuiltinString
open BuiltinString
_ BuiltinString
close a -> BuiltinString
_ [] = BuiltinString
open BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
close
catList BuiltinString
open BuiltinString
sep BuiltinString
close a -> BuiltinString
print (a
x : [a]
xs) = BuiltinString
open BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
print a
x BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [a] -> BuiltinString
printSeparated [a]
xs BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
close
where
printSeparated :: [a] -> BuiltinString
printSeparated [] = BuiltinString
""
printSeparated (a
y : [a]
ys) = BuiltinString
sep BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
print a
y BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [a] -> BuiltinString
printSeparated [a]
ys
instance (ShowBS a, ShowBS b) => ShowBS (a, b) where
{-# INLINEABLE showBS #-}
showBS :: (a, b) -> BuiltinString
showBS (a
x, b
y) = BuiltinString
"(" BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> a -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS a
x BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"," BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> b -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS b
y BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
")"
instance ShowBS Bool where
{-# INLINEABLE showBS #-}
showBS :: Bool -> BuiltinString
showBS Bool
True = BuiltinString
"True"
showBS Bool
False = BuiltinString
"False"
instance (ShowBS a) => ShowBS (Maybe a) where
{-# INLINEABLE showBS #-}
showBS :: Maybe a -> BuiltinString
showBS Maybe a
Nothing = BuiltinString
"Nothing"
showBS (Just a
x) = BuiltinString -> a -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Just" a
x
instance (ShowBS k, ShowBS v) => ShowBS (Map.Map k v) where
{-# INLINEABLE showBS #-}
showBS :: Map k v -> BuiltinString
showBS Map k v
m = BuiltinString -> [(k, v)] -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"fromList" (Map k v -> [(k, v)]
forall k v. Map k v -> [(k, v)]
Map.toList Map k v
m)
instance ShowBS BuiltinByteString where
{-# INLINEABLE showBS #-}
showBS :: BuiltinByteString -> BuiltinString
showBS BuiltinByteString
bs = BuiltinString
"\"" BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [BuiltinString] -> BuiltinString
forall a. Monoid a => [a] -> a
mconcat (BuiltinByteString -> [BuiltinString]
builtinByteStringCharacters BuiltinByteString
bs) BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"\""
{-# INLINEABLE builtinByteStringCharacters #-}
builtinByteStringCharacters :: BuiltinByteString -> [BuiltinString]
builtinByteStringCharacters :: BuiltinByteString -> [BuiltinString]
builtinByteStringCharacters BuiltinByteString
s = Integer -> [BuiltinString] -> [BuiltinString]
go (Integer
len Integer -> Integer -> Integer
forall a. AdditiveGroup a => a -> a -> a
- Integer
1) []
where
len :: Integer
len = BuiltinByteString -> Integer
lengthOfByteString BuiltinByteString
s
go :: Integer -> [BuiltinString] -> [BuiltinString]
go :: Integer -> [BuiltinString] -> [BuiltinString]
go Integer
i [BuiltinString]
acc
| Integer
i Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
>= Integer
0 =
let (Integer
highNibble, Integer
lowNibble) = Integer -> Integer -> (Integer, Integer)
quotRem (BuiltinByteString -> Integer -> Integer
indexByteString BuiltinByteString
s Integer
i) Integer
16
in Integer -> [BuiltinString] -> [BuiltinString]
go (Integer
i Integer -> Integer -> Integer
forall a. AdditiveGroup a => a -> a -> a
- Integer
1) (Integer -> BuiltinString
toHex Integer
highNibble BuiltinString -> [BuiltinString] -> [BuiltinString]
forall a. a -> [a] -> [a]
: Integer -> BuiltinString
toHex Integer
lowNibble BuiltinString -> [BuiltinString] -> [BuiltinString]
forall a. a -> [a] -> [a]
: [BuiltinString]
acc)
| Bool
otherwise = [BuiltinString]
acc
toHex :: Integer -> BuiltinString
toHex :: Integer -> BuiltinString
toHex Integer
x
| Integer
x Integer -> Integer -> Bool
forall a. Ord a => a -> a -> Bool
<= Integer
9 = Integer -> BuiltinString
digitToBS Integer
x
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
10 = BuiltinString
"a"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
11 = BuiltinString
"b"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
12 = BuiltinString
"c"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
13 = BuiltinString
"d"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
14 = BuiltinString
"e"
| Integer
x Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
== Integer
15 = BuiltinString
"f"
| Bool
otherwise = BuiltinString
"?"
instance ShowBS Api.TokenName where
{-# INLINEABLE showBS #-}
showBS :: TokenName -> BuiltinString
showBS (Api.TokenName BuiltinByteString
x) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"TokenName" BuiltinByteString
x
instance ShowBS Api.CurrencySymbol where
{-# INLINEABLE showBS #-}
showBS :: CurrencySymbol -> BuiltinString
showBS (Api.CurrencySymbol BuiltinByteString
x) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"CurrencySymbol" BuiltinByteString
x
instance ShowBS Api.Value where
{-# INLINEABLE showBS #-}
showBS :: Value -> BuiltinString
showBS (Api.Value Map CurrencySymbol (Map TokenName Integer)
m) = BuiltinString
-> Map CurrencySymbol (Map TokenName Integer) -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Value" Map CurrencySymbol (Map TokenName Integer)
m
instance ShowBS Api.MintValue where
{-# INLINEABLE showBS #-}
showBS :: MintValue -> BuiltinString
showBS MintValue
mVal = Value -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS (Value -> BuiltinString) -> Value -> BuiltinString
forall a b. (a -> b) -> a -> b
$ MintValue -> Value
Api.mintValueMinted MintValue
mVal Value -> Value -> Value
forall a. Semigroup a => a -> a -> a
<> Value -> Value
forall a. AdditiveGroup a => a -> a
negate (MintValue -> Value
Api.mintValueBurned MintValue
mVal)
instance ShowBS Api.TxId where
{-# INLINEABLE showBS #-}
showBS :: TxId -> BuiltinString
showBS (Api.TxId BuiltinByteString
x) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"TxId" BuiltinByteString
x
instance ShowBS Api.TxOutRef where
{-# INLINEABLE showBS #-}
showBS :: TxOutRef -> BuiltinString
showBS (Api.TxOutRef TxId
txid Integer
i) = BuiltinString -> TxId -> Integer -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"TxOutRef" TxId
txid Integer
i
instance ShowBS Api.PubKeyHash where
{-# INLINEABLE showBS #-}
showBS :: PubKeyHash -> BuiltinString
showBS (Api.PubKeyHash BuiltinByteString
h) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"PubKeyHash" BuiltinByteString
h
instance ShowBS Api.Credential where
{-# INLINEABLE showBS #-}
showBS :: Credential -> BuiltinString
showBS (Api.ScriptCredential ScriptHash
hash) = BuiltinString -> ScriptHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"ScriptCredential" ScriptHash
hash
showBS (Api.PubKeyCredential PubKeyHash
pkh) = BuiltinString -> PubKeyHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"PubKeyCredential" PubKeyHash
pkh
instance ShowBS Api.StakingCredential where
{-# INLINEABLE showBS #-}
showBS :: StakingCredential -> BuiltinString
showBS (Api.StakingHash Credential
cred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"StakingCredential" Credential
cred
showBS (Api.StakingPtr Integer
i Integer
j Integer
k) = BuiltinString -> Integer -> Integer -> Integer -> BuiltinString
forall a b c.
(ShowBS a, ShowBS b, ShowBS c) =>
BuiltinString -> a -> b -> c -> BuiltinString
application3 BuiltinString
"StakingPointer" Integer
i Integer
j Integer
k
instance ShowBS Api.Address where
{-# INLINEABLE showBS #-}
showBS :: Address -> BuiltinString
showBS (Api.Address Credential
cred Maybe StakingCredential
mStCred) = BuiltinString
-> Credential -> Maybe StakingCredential -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Address" Credential
cred Maybe StakingCredential
mStCred
instance ShowBS Api.DatumHash where
{-# INLINEABLE showBS #-}
showBS :: DatumHash -> BuiltinString
showBS (Api.DatumHash BuiltinByteString
h) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"DatumHash" BuiltinByteString
h
instance ShowBS BuiltinData where
{-# INLINEABLE showBS #-}
showBS :: BuiltinData -> BuiltinString
showBS BuiltinData
d = BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"BuiltinData " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinData -> BuiltinString
showData BuiltinData
d
{-# INLINEABLE showData #-}
showData :: BuiltinData -> BuiltinString
showData :: BuiltinData -> BuiltinString
showData BuiltinData
d =
BuiltinData
-> (Integer -> [BuiltinData] -> BuiltinString)
-> ([(BuiltinData, BuiltinData)] -> BuiltinString)
-> ([BuiltinData] -> BuiltinString)
-> (Integer -> BuiltinString)
-> (BuiltinByteString -> BuiltinString)
-> BuiltinString
forall r.
BuiltinData
-> (Integer -> [BuiltinData] -> r)
-> ([(BuiltinData, BuiltinData)] -> r)
-> ([BuiltinData] -> r)
-> (Integer -> r)
-> (BuiltinByteString -> r)
-> r
matchData
BuiltinData
d
(\Integer
i [BuiltinData]
ds -> BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"Constr " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Integer -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Integer
i BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
" " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
-> BuiltinString
-> BuiltinString
-> (BuiltinData -> BuiltinString)
-> [BuiltinData]
-> BuiltinString
forall a.
BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
catList BuiltinString
"[" BuiltinString
"," BuiltinString
"]" BuiltinData -> BuiltinString
showData [BuiltinData]
ds)
(\[(BuiltinData, BuiltinData)]
alist -> BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"Map " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
-> BuiltinString
-> BuiltinString
-> ((BuiltinData, BuiltinData) -> BuiltinString)
-> [(BuiltinData, BuiltinData)]
-> BuiltinString
forall a.
BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
catList BuiltinString
"[" BuiltinString
"," BuiltinString
"]" (\(BuiltinData
a, BuiltinData
b) -> BuiltinString
"(" BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinData -> BuiltinString
showData BuiltinData
a BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"," BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinData -> BuiltinString
showData BuiltinData
b BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
")") [(BuiltinData, BuiltinData)]
alist)
(\[BuiltinData]
list -> BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"List " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
-> BuiltinString
-> BuiltinString
-> (BuiltinData -> BuiltinString)
-> [BuiltinData]
-> BuiltinString
forall a.
BuiltinString
-> BuiltinString
-> BuiltinString
-> (a -> BuiltinString)
-> [a]
-> BuiltinString
catList BuiltinString
"[" BuiltinString
"," BuiltinString
"]" BuiltinData -> BuiltinString
showData [BuiltinData]
list)
(\Integer
i -> BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"I " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Integer -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Integer
i)
(\BuiltinByteString
bs -> BuiltinString -> BuiltinString
showBSParen (BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"B " BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinByteString -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS BuiltinByteString
bs)
instance ShowBS Api.Datum where
{-# INLINEABLE showBS #-}
showBS :: Datum -> BuiltinString
showBS (Api.Datum BuiltinData
d) = BuiltinString -> BuiltinData -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Datum" BuiltinData
d
instance ShowBS Api.OutputDatum where
{-# INLINEABLE showBS #-}
showBS :: OutputDatum -> BuiltinString
showBS OutputDatum
Api.NoOutputDatum = BuiltinString
"NoOutputDatum"
showBS (Api.OutputDatumHash DatumHash
h) = BuiltinString -> DatumHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"OutputDatumHash" DatumHash
h
showBS (Api.OutputDatum Datum
d) = BuiltinString -> Datum -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"OutputDatum" Datum
d
instance ShowBS Api.ScriptHash where
{-# INLINEABLE showBS #-}
showBS :: ScriptHash -> BuiltinString
showBS (Api.ScriptHash BuiltinByteString
h) = BuiltinString -> BuiltinByteString -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"ScriptHash" BuiltinByteString
h
instance ShowBS Api.TxOut where
{-# INLINEABLE showBS #-}
showBS :: TxOut -> BuiltinString
showBS (Api.TxOut Address
address Value
value OutputDatum
datum Maybe ScriptHash
mRefScriptHash) = BuiltinString
-> Address
-> Value
-> OutputDatum
-> Maybe ScriptHash
-> BuiltinString
forall a b c d.
(ShowBS a, ShowBS b, ShowBS c, ShowBS d) =>
BuiltinString -> a -> b -> c -> d -> BuiltinString
application4 BuiltinString
"TxOut" Address
address Value
value OutputDatum
datum Maybe ScriptHash
mRefScriptHash
instance ShowBS Api.TxInInfo where
{-# INLINEABLE showBS #-}
showBS :: TxInInfo -> BuiltinString
showBS (Api.TxInInfo TxOutRef
oref TxOut
out) = BuiltinString -> TxOutRef -> TxOut -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"TxInInfo" TxOutRef
oref TxOut
out
instance ShowBS Api.POSIXTime where
{-# INLINEABLE showBS #-}
showBS :: POSIXTime -> BuiltinString
showBS (Api.POSIXTime Integer
t) = BuiltinString -> Integer -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"POSIXTime" Integer
t
instance (ShowBS a) => ShowBS (Api.Extended a) where
{-# INLINEABLE showBS #-}
showBS :: Extended a -> BuiltinString
showBS Extended a
Api.NegInf = BuiltinString
"NegInf"
showBS Extended a
Api.PosInf = BuiltinString
"PosInf"
showBS (Api.Finite a
x) = BuiltinString -> a -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Finite" a
x
instance (ShowBS a) => ShowBS (Api.LowerBound a) where
{-# INLINEABLE showBS #-}
showBS :: LowerBound a -> BuiltinString
showBS (Api.LowerBound Extended a
x Bool
closure) = BuiltinString -> Extended a -> Bool -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"LowerBound" Extended a
x Bool
closure
instance (ShowBS a) => ShowBS (Api.UpperBound a) where
{-# INLINEABLE showBS #-}
showBS :: UpperBound a -> BuiltinString
showBS (Api.UpperBound Extended a
x Bool
closure) = BuiltinString -> Extended a -> Bool -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"UpperBound" Extended a
x Bool
closure
instance (ShowBS a) => ShowBS (Api.Interval a) where
{-# INLINEABLE showBS #-}
showBS :: Interval a -> BuiltinString
showBS (Api.Interval LowerBound a
lb UpperBound a
ub) = BuiltinString -> LowerBound a -> UpperBound a -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Interval" LowerBound a
lb UpperBound a
ub
instance ShowBS Api.DRepCredential where
{-# INLINEABLE showBS #-}
showBS :: DRepCredential -> BuiltinString
showBS (Api.DRepCredential Credential
cred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"DRep credential" Credential
cred
instance ShowBS Api.DRep where
{-# INLINEABLE showBS #-}
showBS :: DRep -> BuiltinString
showBS (Api.DRep DRepCredential
dRepCred) = BuiltinString -> DRepCredential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"DRep" DRepCredential
dRepCred
showBS DRep
Api.DRepAlwaysAbstain = BuiltinString
"DRep always abstain"
showBS DRep
Api.DRepAlwaysNoConfidence = BuiltinString
"DRep always no confidence"
instance ShowBS Api.Delegatee where
{-# INLINEABLE showBS #-}
showBS :: Delegatee -> BuiltinString
showBS (Api.DelegStake PubKeyHash
pkh) = BuiltinString -> PubKeyHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Delegate stake" PubKeyHash
pkh
showBS (Api.DelegVote DRep
dRep) = BuiltinString -> DRep -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Delegate vote" DRep
dRep
showBS (Api.DelegStakeVote PubKeyHash
pkh DRep
dRep) = BuiltinString -> PubKeyHash -> DRep -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Delegate stake vote" PubKeyHash
pkh DRep
dRep
instance ShowBS Api.TxCert where
{-# INLINEABLE showBS #-}
showBS :: TxCert -> BuiltinString
showBS (Api.TxCertRegStaking Credential
cred Maybe Lovelace
maybeDepositAmount) = BuiltinString -> Credential -> Maybe Lovelace -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Register staking" Credential
cred Maybe Lovelace
maybeDepositAmount
showBS (Api.TxCertUnRegStaking Credential
cred Maybe Lovelace
maybeDepositAmount) = BuiltinString -> Credential -> Maybe Lovelace -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Unregister staking" Credential
cred Maybe Lovelace
maybeDepositAmount
showBS (Api.TxCertDelegStaking Credential
cred Delegatee
delegatee) = BuiltinString -> Credential -> Delegatee -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Delegate staking" Credential
cred Delegatee
delegatee
showBS (Api.TxCertRegDeleg Credential
cred Delegatee
delegatee Lovelace
depositAmount) = BuiltinString
-> Credential -> Delegatee -> Lovelace -> BuiltinString
forall a b c.
(ShowBS a, ShowBS b, ShowBS c) =>
BuiltinString -> a -> b -> c -> BuiltinString
application3 BuiltinString
"Register and delegate staking" Credential
cred Delegatee
delegatee Lovelace
depositAmount
showBS (Api.TxCertRegDRep DRepCredential
dRepCred Lovelace
amount) = BuiltinString -> DRepCredential -> Lovelace -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Register DRep" DRepCredential
dRepCred Lovelace
amount
showBS (Api.TxCertUpdateDRep DRepCredential
dRepCred) = BuiltinString -> DRepCredential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Update DRep" DRepCredential
dRepCred
showBS (Api.TxCertUnRegDRep DRepCredential
dRepCred Lovelace
amount) = BuiltinString -> DRepCredential -> Lovelace -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Unregister DRep" DRepCredential
dRepCred Lovelace
amount
showBS (Api.TxCertPoolRegister PubKeyHash
poolId PubKeyHash
poolVFR) = BuiltinString -> PubKeyHash -> PubKeyHash -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Register to pool" PubKeyHash
poolId PubKeyHash
poolVFR
showBS (Api.TxCertPoolRetire PubKeyHash
pkh Integer
epoch) = BuiltinString -> PubKeyHash -> Integer -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Retire from pool" PubKeyHash
pkh Integer
epoch
showBS (Api.TxCertAuthHotCommittee ColdCommitteeCredential
coldCommitteeCred HotCommitteeCredential
hotCommitteeCred) = BuiltinString
-> ColdCommitteeCredential
-> HotCommitteeCredential
-> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Authorize hot committee " ColdCommitteeCredential
coldCommitteeCred HotCommitteeCredential
hotCommitteeCred
showBS (Api.TxCertResignColdCommittee ColdCommitteeCredential
coldCommitteeCred) = BuiltinString -> ColdCommitteeCredential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Resign cold committee" ColdCommitteeCredential
coldCommitteeCred
instance ShowBS Api.Voter where
{-# INLINEABLE showBS #-}
showBS :: Voter -> BuiltinString
showBS (Api.CommitteeVoter HotCommitteeCredential
hotCommitteeCred) = BuiltinString -> HotCommitteeCredential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Committee Voter" HotCommitteeCredential
hotCommitteeCred
showBS (Api.DRepVoter DRepCredential
dRepCred) = BuiltinString -> DRepCredential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"DRep Voter" DRepCredential
dRepCred
showBS (Api.StakePoolVoter PubKeyHash
pkh) = BuiltinString -> PubKeyHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Stake Pool Voter" PubKeyHash
pkh
instance ShowBS Api.GovernanceActionId where
{-# INLINEABLE showBS #-}
showBS :: GovernanceActionId -> BuiltinString
showBS Api.GovernanceActionId {Integer
TxId
gaidTxId :: TxId
gaidGovActionIx :: Integer
gaidGovActionIx :: GovernanceActionId -> Integer
gaidTxId :: GovernanceActionId -> TxId
..} =
BuiltinString -> BuiltinString
showBSParen
(BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"Tx Id:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> TxId -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS TxId
gaidTxId
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"Action Id:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Integer -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Integer
gaidGovActionIx
instance ShowBS Api.ScriptPurpose where
{-# INLINEABLE showBS #-}
showBS :: ScriptPurpose -> BuiltinString
showBS (Api.Minting CurrencySymbol
cs) = BuiltinString -> CurrencySymbol -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Minting" CurrencySymbol
cs
showBS (Api.Spending TxOutRef
oref) = BuiltinString -> TxOutRef -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Spending" TxOutRef
oref
showBS (Api.Rewarding Credential
stCred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Rewarding" Credential
stCred
showBS (Api.Certifying Integer
nb TxCert
txCert) = BuiltinString -> Integer -> TxCert -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Certifying" Integer
nb TxCert
txCert
showBS (Api.Voting Voter
voter) = BuiltinString -> Voter -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Voting" Voter
voter
showBS (Api.Proposing Integer
nb ProposalProcedure
proposal) = BuiltinString -> Integer -> ProposalProcedure -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Proposing" Integer
nb ProposalProcedure
proposal
instance ShowBS Api.Redeemer where
{-# INLINEABLE showBS #-}
showBS :: Redeemer -> BuiltinString
showBS (Api.Redeemer BuiltinData
builtinData) = BuiltinString -> BuiltinData -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Redeemer" BuiltinData
builtinData
instance ShowBS Api.Vote where
{-# INLINEABLE showBS #-}
showBS :: Vote -> BuiltinString
showBS Vote
Api.VoteNo = BuiltinString
"No"
showBS Vote
Api.VoteYes = BuiltinString
"Yes"
showBS Vote
Api.Abstain = BuiltinString
"Abstain"
instance ShowBS Api.ChangedParameters where
{-# INLINEABLE showBS #-}
showBS :: ChangedParameters -> BuiltinString
showBS (Api.ChangedParameters BuiltinData
builtinData) = BuiltinString -> BuiltinData -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Changed parameters" BuiltinData
builtinData
instance ShowBS Api.ProtocolVersion where
{-# INLINEABLE showBS #-}
showBS :: ProtocolVersion -> BuiltinString
showBS (Api.ProtocolVersion Integer
major Integer
minor) = BuiltinString -> Integer -> Integer -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Protocol version" Integer
major Integer
minor
instance ShowBS Api.Constitution where
{-# INLINEABLE showBS #-}
showBS :: Constitution -> BuiltinString
showBS (Api.Constitution Maybe ScriptHash
constitutionScript) = BuiltinString -> Maybe ScriptHash -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Constitution" Maybe ScriptHash
constitutionScript
instance ShowBS Api.ColdCommitteeCredential where
{-# INLINEABLE showBS #-}
showBS :: ColdCommitteeCredential -> BuiltinString
showBS (Api.ColdCommitteeCredential Credential
cred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Cold committee credential" Credential
cred
instance ShowBS Api.HotCommitteeCredential where
{-# INLINEABLE showBS #-}
showBS :: HotCommitteeCredential -> BuiltinString
showBS (Api.HotCommitteeCredential Credential
cred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Hot committee credential" Credential
cred
instance ShowBS Api.Committee where
{-# INLINEABLE showBS #-}
showBS :: Committee -> BuiltinString
showBS (Api.Committee Map ColdCommitteeCredential Integer
committeeMembers Rational
committeeQuorum) = BuiltinString
-> Map ColdCommitteeCredential Integer -> Rational -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Committee" Map ColdCommitteeCredential Integer
committeeMembers Rational
committeeQuorum
instance ShowBS Api.Lovelace where
{-# INLINEABLE showBS #-}
showBS :: Lovelace -> BuiltinString
showBS (Api.Lovelace Integer
amount) = BuiltinString -> Integer -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"Lovelace" Integer
amount
instance ShowBS Rational where
{-# INLINEABLE showBS #-}
showBS :: Rational -> BuiltinString
showBS Rational
rat = BuiltinString -> Integer -> Integer -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"Rational" (Rational -> Integer
numerator Rational
rat) (Rational -> Integer
denominator Rational
rat)
instance ShowBS Api.GovernanceAction where
{-# INLINEABLE showBS #-}
showBS :: GovernanceAction -> BuiltinString
showBS (Api.ParameterChange Maybe GovernanceActionId
maybeActionId ChangedParameters
changeParams Maybe ScriptHash
mScriptHash) = BuiltinString
-> Maybe GovernanceActionId
-> ChangedParameters
-> Maybe ScriptHash
-> BuiltinString
forall a b c.
(ShowBS a, ShowBS b, ShowBS c) =>
BuiltinString -> a -> b -> c -> BuiltinString
application3 BuiltinString
"Parameter change" Maybe GovernanceActionId
maybeActionId ChangedParameters
changeParams Maybe ScriptHash
mScriptHash
showBS (Api.HardForkInitiation Maybe GovernanceActionId
maybeActionId ProtocolVersion
protocolVersion) = BuiltinString
-> Maybe GovernanceActionId -> ProtocolVersion -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"HardForkInitiation" Maybe GovernanceActionId
maybeActionId ProtocolVersion
protocolVersion
showBS (Api.TreasuryWithdrawals Map Credential Lovelace
mapCredLovelace Maybe ScriptHash
mScriptHash) = BuiltinString
-> Map Credential Lovelace -> Maybe ScriptHash -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"TreasuryWithdrawals" Map Credential Lovelace
mapCredLovelace Maybe ScriptHash
mScriptHash
showBS (Api.NoConfidence Maybe GovernanceActionId
maybeActionId) = BuiltinString -> Maybe GovernanceActionId -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"NoConfidence" Maybe GovernanceActionId
maybeActionId
showBS (Api.UpdateCommittee Maybe GovernanceActionId
maybeActionId [ColdCommitteeCredential]
toRemoveCreds Map ColdCommitteeCredential Integer
toAddCreds Rational
quorum) = BuiltinString
-> Maybe GovernanceActionId
-> [ColdCommitteeCredential]
-> Map ColdCommitteeCredential Integer
-> Rational
-> BuiltinString
forall a b c d.
(ShowBS a, ShowBS b, ShowBS c, ShowBS d) =>
BuiltinString -> a -> b -> c -> d -> BuiltinString
application4 BuiltinString
"Info action" Maybe GovernanceActionId
maybeActionId [ColdCommitteeCredential]
toRemoveCreds Map ColdCommitteeCredential Integer
toAddCreds Rational
quorum
showBS (Api.NewConstitution Maybe GovernanceActionId
maybeActionId Constitution
constitution) = BuiltinString
-> Maybe GovernanceActionId -> Constitution -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"NewConstitution" Maybe GovernanceActionId
maybeActionId Constitution
constitution
showBS GovernanceAction
Api.InfoAction = BuiltinString
"InfoAction"
instance ShowBS Api.ProposalProcedure where
{-# INLINEABLE showBS #-}
showBS :: ProposalProcedure -> BuiltinString
showBS Api.ProposalProcedure {Credential
Lovelace
GovernanceAction
ppDeposit :: Lovelace
ppReturnAddr :: Credential
ppGovernanceAction :: GovernanceAction
ppDeposit :: ProposalProcedure -> Lovelace
ppGovernanceAction :: ProposalProcedure -> GovernanceAction
ppReturnAddr :: ProposalProcedure -> Credential
..} =
BuiltinString -> BuiltinString
showBSParen
(BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"deposit:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Lovelace -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Lovelace
ppDeposit
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"return address"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Credential -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Credential
ppReturnAddr
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"governance action"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> GovernanceAction -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS GovernanceAction
ppGovernanceAction
instance ShowBS Api.TxInfo where
{-# INLINEABLE showBS #-}
showBS :: TxInfo -> BuiltinString
showBS Api.TxInfo {[PubKeyHash]
[TxOut]
[ProposalProcedure]
[TxCert]
[TxInInfo]
Maybe Lovelace
POSIXTimeRange
Map DatumHash Datum
Map Credential Lovelace
Map ScriptPurpose Redeemer
Map Voter (Map GovernanceActionId Vote)
TxId
Lovelace
MintValue
txInfoInputs :: [TxInInfo]
txInfoReferenceInputs :: [TxInInfo]
txInfoOutputs :: [TxOut]
txInfoFee :: Lovelace
txInfoMint :: MintValue
txInfoTxCerts :: [TxCert]
txInfoWdrl :: Map Credential Lovelace
txInfoValidRange :: POSIXTimeRange
txInfoSignatories :: [PubKeyHash]
txInfoRedeemers :: Map ScriptPurpose Redeemer
txInfoData :: Map DatumHash Datum
txInfoId :: TxId
txInfoVotes :: Map Voter (Map GovernanceActionId Vote)
txInfoProposalProcedures :: [ProposalProcedure]
txInfoCurrentTreasuryAmount :: Maybe Lovelace
txInfoTreasuryDonation :: Maybe Lovelace
txInfoCurrentTreasuryAmount :: TxInfo -> Maybe Lovelace
txInfoData :: TxInfo -> Map DatumHash Datum
txInfoFee :: TxInfo -> Lovelace
txInfoId :: TxInfo -> TxId
txInfoInputs :: TxInfo -> [TxInInfo]
txInfoMint :: TxInfo -> MintValue
txInfoOutputs :: TxInfo -> [TxOut]
txInfoProposalProcedures :: TxInfo -> [ProposalProcedure]
txInfoRedeemers :: TxInfo -> Map ScriptPurpose Redeemer
txInfoReferenceInputs :: TxInfo -> [TxInInfo]
txInfoSignatories :: TxInfo -> [PubKeyHash]
txInfoTreasuryDonation :: TxInfo -> Maybe Lovelace
txInfoTxCerts :: TxInfo -> [TxCert]
txInfoValidRange :: TxInfo -> POSIXTimeRange
txInfoVotes :: TxInfo -> Map Voter (Map GovernanceActionId Vote)
txInfoWdrl :: TxInfo -> Map Credential Lovelace
..} =
BuiltinString -> BuiltinString
showBSParen
(BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"inputs:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [TxInInfo] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [TxInInfo]
txInfoInputs
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"reference inputs:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [TxInInfo] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [TxInInfo]
txInfoReferenceInputs
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"outputs:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [TxOut] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [TxOut]
txInfoOutputs
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"fees:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Lovelace -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Lovelace
txInfoFee
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"minted value:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> MintValue -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS MintValue
txInfoMint
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"certificates:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [TxCert] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [TxCert]
txInfoTxCerts
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"wdrl:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Map Credential Lovelace -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Map Credential Lovelace
txInfoWdrl
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"valid range:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> POSIXTimeRange -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS POSIXTimeRange
txInfoValidRange
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"signatories:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [PubKeyHash] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [PubKeyHash]
txInfoSignatories
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"redeemers:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Map ScriptPurpose Redeemer -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Map ScriptPurpose Redeemer
txInfoRedeemers
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"datums:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Map DatumHash Datum -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Map DatumHash Datum
txInfoData
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"transaction id:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> TxId -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS TxId
txInfoId
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"votes:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Map Voter (Map GovernanceActionId Vote) -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Map Voter (Map GovernanceActionId Vote)
txInfoVotes
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"proposals:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> [ProposalProcedure] -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS [ProposalProcedure]
txInfoProposalProcedures
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"treasury amount:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Maybe Lovelace -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Maybe Lovelace
txInfoCurrentTreasuryAmount
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"treasury donation:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Maybe Lovelace -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Maybe Lovelace
txInfoTreasuryDonation
instance ShowBS Api.ScriptInfo where
{-# INLINEABLE showBS #-}
showBS :: ScriptInfo -> BuiltinString
showBS (Api.MintingScript CurrencySymbol
cs) = BuiltinString -> CurrencySymbol -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"MintingScript" CurrencySymbol
cs
showBS (Api.SpendingScript TxOutRef
oref Maybe Datum
mDat) = BuiltinString -> TxOutRef -> Maybe Datum -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"SpendingScript" TxOutRef
oref Maybe Datum
mDat
showBS (Api.RewardingScript Credential
stCred) = BuiltinString -> Credential -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"RewardingScript" Credential
stCred
showBS (Api.CertifyingScript Integer
nb TxCert
txCert) = BuiltinString -> Integer -> TxCert -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"CertifyingScript" Integer
nb TxCert
txCert
showBS (Api.VotingScript Voter
voter) = BuiltinString -> Voter -> BuiltinString
forall a. ShowBS a => BuiltinString -> a -> BuiltinString
application1 BuiltinString
"VotingScript" Voter
voter
showBS (Api.ProposingScript Integer
nb ProposalProcedure
proposal) = BuiltinString -> Integer -> ProposalProcedure -> BuiltinString
forall a b.
(ShowBS a, ShowBS b) =>
BuiltinString -> a -> b -> BuiltinString
application2 BuiltinString
"ProposingScript" Integer
nb ProposalProcedure
proposal
instance ShowBS Api.ScriptContext where
{-# INLINEABLE showBS #-}
showBS :: ScriptContext -> BuiltinString
showBS Api.ScriptContext {Redeemer
ScriptInfo
TxInfo
scriptContextTxInfo :: TxInfo
scriptContextRedeemer :: Redeemer
scriptContextScriptInfo :: ScriptInfo
scriptContextRedeemer :: ScriptContext -> Redeemer
scriptContextScriptInfo :: ScriptContext -> ScriptInfo
scriptContextTxInfo :: ScriptContext -> TxInfo
..} =
BuiltinString -> BuiltinString
showBSParen
(BuiltinString -> BuiltinString) -> BuiltinString -> BuiltinString
forall a b. (a -> b) -> a -> b
$ BuiltinString
"Script context:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"Script Tx info:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> TxInfo -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS TxInfo
scriptContextTxInfo
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"Script redeemer:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> Redeemer -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS Redeemer
scriptContextRedeemer
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> BuiltinString
"Script purpose:"
BuiltinString -> BuiltinString -> BuiltinString
forall a. Semigroup a => a -> a -> a
<> ScriptInfo -> BuiltinString
forall a. ShowBS a => a -> BuiltinString
showBS ScriptInfo
scriptContextScriptInfo