module Covenant.Internal.Ledger
( ledgerTypes,
DeclBuilder (Decl),
CtorBuilder (Ctor),
mkDecl,
maybeT,
pair,
list,
tree,
weirderList,
)
where
import Covenant.DeBruijn (DeBruijn (Z))
import Covenant.Index (Count, count0, count1, count2, ix0, ix1)
import Covenant.Internal.Strategy
( DataEncoding (BuiltinStrategy, PlutusData),
InternalStrategy (InternalAssocMapStrat, InternalDataStrat, InternalListStrat, InternalPairStrat),
PlutusDataStrategy (ConstrData, NewtypeData),
)
import Covenant.Internal.Type
( AbstractTy (BoundAt),
BuiltinFlatT (BoolT, ByteStringT, IntegerT),
Constructor (Constructor),
ConstructorName (ConstructorName),
DataDeclaration (DataDeclaration),
TyName (TyName),
ValT (Abstraction, BuiltinFlat, Datatype),
)
import Data.Coerce (coerce)
import Data.Vector qualified as Vector
ledgerTypes :: [DataDeclaration AbstractTy]
ledgerTypes :: [DataDeclaration AbstractTy]
ledgerTypes =
[ DataDeclaration AbstractTy
list,
DataDeclaration AbstractTy
pair,
DataDeclaration AbstractTy
plutusData,
DataDeclaration AbstractTy
datum,
DataDeclaration AbstractTy
redeemer,
DataDeclaration AbstractTy
scriptHash,
DataDeclaration AbstractTy
datumHash,
DataDeclaration AbstractTy
redeemerHash,
DataDeclaration AbstractTy
credential,
DataDeclaration AbstractTy
stakingCredential,
DataDeclaration AbstractTy
pubKeyHash,
DataDeclaration AbstractTy
address,
DataDeclaration AbstractTy
maybeT,
DataDeclaration AbstractTy
posixTime,
DataDeclaration AbstractTy
interval,
DataDeclaration AbstractTy
upperBound,
DataDeclaration AbstractTy
lowerBound,
DataDeclaration AbstractTy
extended,
DataDeclaration AbstractTy
ledgerBytes,
DataDeclaration AbstractTy
assocMap,
DataDeclaration AbstractTy
currencySymbol,
DataDeclaration AbstractTy
tokenName,
DataDeclaration AbstractTy
value,
DataDeclaration AbstractTy
lovelace,
DataDeclaration AbstractTy
rational,
DataDeclaration AbstractTy
mintValue,
DataDeclaration AbstractTy
txId,
DataDeclaration AbstractTy
txOutRef,
DataDeclaration AbstractTy
txOut,
DataDeclaration AbstractTy
outputDatum,
DataDeclaration AbstractTy
txInInfo,
DataDeclaration AbstractTy
dRepCredential,
DataDeclaration AbstractTy
dRep,
DataDeclaration AbstractTy
delegatee,
DataDeclaration AbstractTy
coldCommitteeCredential,
DataDeclaration AbstractTy
hotCommitteeCredential,
DataDeclaration AbstractTy
txCert,
DataDeclaration AbstractTy
voter,
DataDeclaration AbstractTy
vote,
DataDeclaration AbstractTy
governanceActionId,
DataDeclaration AbstractTy
committee,
DataDeclaration AbstractTy
constitution,
DataDeclaration AbstractTy
changedParameters,
DataDeclaration AbstractTy
protocolVersion,
DataDeclaration AbstractTy
governanceAction,
DataDeclaration AbstractTy
proposalProcedure,
DataDeclaration AbstractTy
scriptPurpose,
DataDeclaration AbstractTy
scriptInfo,
DataDeclaration AbstractTy
txInfo,
DataDeclaration AbstractTy
scriptContext
]
list :: DataDeclaration AbstractTy
list :: DataDeclaration AbstractTy
list =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"List"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Nil" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Cons" [AbstractTy -> ValT AbstractTy
forall a. a -> ValT a
Abstraction (DeBruijn -> Index "tyvar" -> AbstractTy
BoundAt DeBruijn
Z Index "tyvar"
forall (ofWhat :: Symbol). Index ofWhat
ix0), TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [AbstractTy -> ValT AbstractTy
forall a. a -> ValT a
Abstraction (DeBruijn -> Index "tyvar" -> AbstractTy
BoundAt DeBruijn
Z Index "tyvar"
forall (ofWhat :: Symbol). Index ofWhat
ix0)]]
]
(InternalStrategy -> DataEncoding
BuiltinStrategy InternalStrategy
InternalListStrat)
pair :: DataDeclaration AbstractTy
pair :: DataDeclaration AbstractTy
pair = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"Pair" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count2 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Pair" [ValT AbstractTy
a, ValT AbstractTy
b]] (InternalStrategy -> DataEncoding
BuiltinStrategy InternalStrategy
InternalPairStrat)
plutusData :: DataDeclaration AbstractTy
plutusData :: DataDeclaration AbstractTy
plutusData =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Data"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Constr" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Pair" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" []]]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"I" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"B" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT]
]
(InternalStrategy -> DataEncoding
BuiltinStrategy InternalStrategy
InternalDataStrat)
datum :: DataDeclaration AbstractTy
datum :: DataDeclaration AbstractTy
datum = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"Datum" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Datum" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" []]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
redeemer :: DataDeclaration AbstractTy
redeemer :: DataDeclaration AbstractTy
redeemer = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"Redeemer" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Redeemer" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" []]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
scriptHash :: DataDeclaration AbstractTy
scriptHash :: DataDeclaration AbstractTy
scriptHash = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"ScriptHash" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"ScriptHash" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
datumHash :: DataDeclaration AbstractTy
datumHash :: DataDeclaration AbstractTy
datumHash = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"DatumHash" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DatumHash" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
redeemerHash :: DataDeclaration AbstractTy
redeemerHash :: DataDeclaration AbstractTy
redeemerHash = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"RedeemerHash" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"RedeemerHash" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
credential :: DataDeclaration AbstractTy
credential :: DataDeclaration AbstractTy
credential =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Credential"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"PubKeyCredential" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"ScriptCredential" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptHash" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
stakingCredential :: DataDeclaration AbstractTy
stakingCredential :: DataDeclaration AbstractTy
stakingCredential =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"StakingCredential"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"StakingHash" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"StakingPtr" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
pubKeyHash :: DataDeclaration AbstractTy
pubKeyHash :: DataDeclaration AbstractTy
pubKeyHash = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
"PubKeyHash" Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"PubKeyHash" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
address :: DataDeclaration AbstractTy
address :: DataDeclaration AbstractTy
address =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Address"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Address" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"StakingCredential" []]]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
maybeT :: DataDeclaration AbstractTy
maybeT :: DataDeclaration AbstractTy
maybeT =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Maybe"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Just" [AbstractTy -> ValT AbstractTy
forall a. a -> ValT a
Abstraction (DeBruijn -> Index "tyvar" -> AbstractTy
BoundAt DeBruijn
Z Index "tyvar"
forall (ofWhat :: Symbol). Index ofWhat
ix0)],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Nothing" []
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
posixTime :: DataDeclaration AbstractTy
posixTime :: DataDeclaration AbstractTy
posixTime = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"POSIXTime" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT)
interval :: DataDeclaration AbstractTy
interval :: DataDeclaration AbstractTy
interval =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Interval"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"Interval"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"LowerBound" [ValT AbstractTy
a],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"UpperBound" [ValT AbstractTy
a]
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
upperBound :: DataDeclaration AbstractTy
upperBound :: DataDeclaration AbstractTy
upperBound =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"UpperBound"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"UpperBound" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Extended" [ValT AbstractTy
a], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
BoolT]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
lowerBound :: DataDeclaration AbstractTy
lowerBound :: DataDeclaration AbstractTy
lowerBound =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"LowerBound"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"LowerBound" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Extended" [ValT AbstractTy
a], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
BoolT]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
extended :: DataDeclaration AbstractTy
extended :: DataDeclaration AbstractTy
extended =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Extended"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"NegInf" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Finite" [ValT AbstractTy
a],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"PosInf" []
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
ledgerBytes :: DataDeclaration AbstractTy
ledgerBytes :: DataDeclaration AbstractTy
ledgerBytes = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"LedgerBytes" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT)
assocMap :: DataDeclaration AbstractTy
assocMap :: DataDeclaration AbstractTy
assocMap =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Map"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count2
[ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Pair" [ValT AbstractTy
a, ValT AbstractTy
b]]]]
(InternalStrategy -> DataEncoding
BuiltinStrategy InternalStrategy
InternalAssocMapStrat)
currencySymbol :: DataDeclaration AbstractTy
currencySymbol :: DataDeclaration AbstractTy
currencySymbol = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"CurrencySymbol" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT)
tokenName :: DataDeclaration AbstractTy
tokenName :: DataDeclaration AbstractTy
tokenName = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"TokenName" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT)
value :: DataDeclaration AbstractTy
value :: DataDeclaration AbstractTy
value =
TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype
TyName
"Value"
( TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon
TyName
"Map"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"CurrencySymbol" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TokenName" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]
]
)
lovelace :: DataDeclaration AbstractTy
lovelace :: DataDeclaration AbstractTy
lovelace = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"Lovelace" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT)
rational :: DataDeclaration AbstractTy
rational :: DataDeclaration AbstractTy
rational =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Rational"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Rational" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Pair" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
mintValue :: DataDeclaration AbstractTy
mintValue :: DataDeclaration AbstractTy
mintValue =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"MintValue"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"UnsafeMintValue"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon
TyName
"Map"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"CurrencySymbol" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TokenName" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]
]
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
txId :: DataDeclaration AbstractTy
txId :: DataDeclaration AbstractTy
txId = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"TxId" (BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
ByteStringT)
txOutRef :: DataDeclaration AbstractTy
txOutRef :: DataDeclaration AbstractTy
txOutRef =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"TxOutRef"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxOutRef" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxId" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
txOut :: DataDeclaration AbstractTy
txOut :: DataDeclaration AbstractTy
txOut =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"TxOut"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"TxOut"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Address" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Value" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"OutputDatum" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptHash" []]
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
outputDatum :: DataDeclaration AbstractTy
outputDatum :: DataDeclaration AbstractTy
outputDatum =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"OutputDatum"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"NoOutputDatum" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"OutputDatumHash" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DatumHash" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"OutputDatum" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"OutputDatum" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
txInInfo :: DataDeclaration AbstractTy
txInInfo :: DataDeclaration AbstractTy
txInInfo =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"TxInInfo"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"TxInInfo"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxOutRef" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxOut" []
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
dRepCredential :: DataDeclaration AbstractTy
dRepCredential :: DataDeclaration AbstractTy
dRepCredential = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"DRepCredential" (TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [])
dRep :: DataDeclaration AbstractTy
dRep :: DataDeclaration AbstractTy
dRep =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"DRep"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DRep" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRepCredential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DRepAlwaysAbstain" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DRepAlwaysNoConfidence" []
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
delegatee :: DataDeclaration AbstractTy
delegatee :: DataDeclaration AbstractTy
delegatee =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Delegatee"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DelegStake" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DelegVote" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRep" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DelegStakeVoke" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRep" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
coldCommitteeCredential :: DataDeclaration AbstractTy
coldCommitteeCredential :: DataDeclaration AbstractTy
coldCommitteeCredential = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"ColdCommitteeCredential" (TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [])
hotCommitteeCredential :: DataDeclaration AbstractTy
hotCommitteeCredential :: DataDeclaration AbstractTy
hotCommitteeCredential = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"HotCommitteeCredential" (TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [])
txCert :: DataDeclaration AbstractTy
txCert :: DataDeclaration AbstractTy
txCert =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"TxCert"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertRegStaking" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertUnRegStaking" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertDelegStaking" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Delegatee" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertRegDeleg" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Delegatee" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertRegDRep" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRepCredential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertUpdateDRep" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRepCredential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertUnRegDRep" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRepCredential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertPoolRegister" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertPoolRetire" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertAuthHotCommittee" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ColdCommitteeCredential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"HotCommitteeCredential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"TxCertResignColdCommittee" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ColdCommitteeCredential" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
voter :: DataDeclaration AbstractTy
voter :: DataDeclaration AbstractTy
voter =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Voter"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"CommitteeVoter" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"HotCommitteeCredential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"DRepVoter" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DRepCredential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"StakePoolVoter" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
vote :: DataDeclaration AbstractTy
vote :: DataDeclaration AbstractTy
vote =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Vote"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"VoteNo" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"VoteYes" [],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Abstain" []
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
governanceActionId :: DataDeclaration AbstractTy
governanceActionId :: DataDeclaration AbstractTy
governanceActionId =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"GovernanceActionId"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"GovernanceActionId"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxId" [],
BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
committee :: DataDeclaration AbstractTy
committee :: DataDeclaration AbstractTy
committee =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Committee"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"Committee"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ColdCommitteeCredential" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Rational" []
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
constitution :: DataDeclaration AbstractTy
constitution :: DataDeclaration AbstractTy
constitution = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"Constitution" (TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptHash" []])
changedParameters :: DataDeclaration AbstractTy
changedParameters :: DataDeclaration AbstractTy
changedParameters = TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
"ChangedParameters" (TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Data" [])
protocolVersion :: DataDeclaration AbstractTy
protocolVersion :: DataDeclaration AbstractTy
protocolVersion =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"ProtocolVersion"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"ProtocolVersion" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
governanceAction :: DataDeclaration AbstractTy
governanceAction :: DataDeclaration AbstractTy
governanceAction =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"GovernanceAction"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"ParameterChange"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ChangedParameters" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptHash" []]
],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"HardForkInitiation"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ProtocolVersion" []
],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"TreasuryWithdrawals"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptHash" []]
],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"NoConfidence" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"UpdateCommittee"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ColdCommitteeCredential" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ColdCommitteeCredential" [], BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Rational" []
],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"NewConstitution" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" []], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Constitution" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"InfoAction" []
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
proposalProcedure :: DataDeclaration AbstractTy
proposalProcedure :: DataDeclaration AbstractTy
proposalProcedure =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"ProposalProcedure"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"ProposalProcedure"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceAction" []
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
scriptPurpose :: DataDeclaration AbstractTy
scriptPurpose :: DataDeclaration AbstractTy
scriptPurpose =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"ScriptPurpose"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Minting" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"CurrencySymbol" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Spending" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxOutRef" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Rewarding" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Certifying" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxCert" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Voting" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Voter" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Proposing" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ProposalProcedure" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
scriptInfo :: DataDeclaration AbstractTy
scriptInfo :: DataDeclaration AbstractTy
scriptInfo =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"ScriptInfo"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"MintingScript" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"CurrencySymbol" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"SpendingScript" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxOutRef" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Datum" []]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"RewardingScript" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"CertifyingScript" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxCert" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"VotingScript" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Voter" []],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"ProposingScript" [BuiltinFlatT -> ValT AbstractTy
forall a. BuiltinFlatT -> ValT a
BuiltinFlat BuiltinFlatT
IntegerT, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ProposalProcedure" []]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
posixTimeRange :: ValT AbstractTy
posixTimeRange :: ValT AbstractTy
posixTimeRange = TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Interval" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"POSIXTime" []]
txInfo :: DataDeclaration AbstractTy
txInfo :: DataDeclaration AbstractTy
txInfo =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"TxInfo"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"TxInfo"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxInInfo" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxInInfo" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxOut" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"MintValue" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxCert" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Credential" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
ValT AbstractTy
posixTimeRange,
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"PubKeyHash" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptPurpose" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Redeemer" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"DatumHash" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Datum" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxId" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Voter" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Map" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"GovernanceActionId" [], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Vote" []]],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"List" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ProposalProcedure" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Lovelace" []]
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
scriptContext :: DataDeclaration AbstractTy
scriptContext :: DataDeclaration AbstractTy
scriptContext =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"ScriptContext"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor
ConstructorName
"ScriptContext"
[ TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"TxInfo" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Redeemer" [],
TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"ScriptInfo" []
]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
data DeclBuilder = Decl TyName (Count "tyvar") [CtorBuilder] DataEncoding
data CtorBuilder = Ctor ConstructorName [ValT AbstractTy]
mkDecl :: DeclBuilder -> DataDeclaration AbstractTy
mkDecl :: DeclBuilder -> DataDeclaration AbstractTy
mkDecl (Decl TyName
tn Count "tyvar"
cnt [CtorBuilder]
ctors DataEncoding
enc) = TyName
-> Count "tyvar"
-> Vector (Constructor AbstractTy)
-> DataEncoding
-> DataDeclaration AbstractTy
forall a.
TyName
-> Count "tyvar"
-> Vector (Constructor a)
-> DataEncoding
-> DataDeclaration a
DataDeclaration TyName
tn Count "tyvar"
cnt ([Constructor AbstractTy] -> Vector (Constructor AbstractTy)
forall a. [a] -> Vector a
Vector.fromList ([Constructor AbstractTy] -> Vector (Constructor AbstractTy))
-> ([CtorBuilder] -> [Constructor AbstractTy])
-> [CtorBuilder]
-> Vector (Constructor AbstractTy)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (CtorBuilder -> Constructor AbstractTy)
-> [CtorBuilder] -> [Constructor AbstractTy]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: Type -> Type) a b. Functor f => (a -> b) -> f a -> f b
fmap CtorBuilder -> Constructor AbstractTy
mkCtor ([CtorBuilder] -> Vector (Constructor AbstractTy))
-> [CtorBuilder] -> Vector (Constructor AbstractTy)
forall a b. (a -> b) -> a -> b
$ [CtorBuilder]
ctors) DataEncoding
enc
where
mkCtor :: CtorBuilder -> Constructor AbstractTy
mkCtor :: CtorBuilder -> Constructor AbstractTy
mkCtor (Ctor ConstructorName
cnm [ValT AbstractTy]
fields) = ConstructorName
-> Vector (ValT AbstractTy) -> Constructor AbstractTy
forall a. ConstructorName -> Vector (ValT a) -> Constructor a
Constructor ConstructorName
cnm ([ValT AbstractTy] -> Vector (ValT AbstractTy)
forall a. [a] -> Vector a
Vector.fromList [ValT AbstractTy]
fields)
tycon :: TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon :: TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
tn [ValT AbstractTy]
vals = TyName -> Vector (ValT AbstractTy) -> ValT AbstractTy
forall a. TyName -> Vector (ValT a) -> ValT a
Datatype TyName
tn ([ValT AbstractTy] -> Vector (ValT AbstractTy)
forall a. [a] -> Vector a
Vector.fromList [ValT AbstractTy]
vals)
mkSimpleNewtype :: TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype :: TyName -> ValT AbstractTy -> DataDeclaration AbstractTy
mkSimpleNewtype TyName
tn ValT AbstractTy
val = DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$ TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl TyName
tn Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count0 [ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor (TyName -> ConstructorName
forall a b. Coercible a b => a -> b
coerce TyName
tn) [ValT AbstractTy
val]] (PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
NewtypeData)
a :: ValT AbstractTy
a :: ValT AbstractTy
a = AbstractTy -> ValT AbstractTy
forall a. a -> ValT a
Abstraction (DeBruijn -> Index "tyvar" -> AbstractTy
BoundAt DeBruijn
Z Index "tyvar"
forall (ofWhat :: Symbol). Index ofWhat
ix0)
b :: ValT AbstractTy
b :: ValT AbstractTy
b = AbstractTy -> ValT AbstractTy
forall a. a -> ValT a
Abstraction (DeBruijn -> Index "tyvar" -> AbstractTy
BoundAt DeBruijn
Z Index "tyvar"
forall (ofWhat :: Symbol). Index ofWhat
ix1)
tree :: DataDeclaration AbstractTy
tree :: DataDeclaration AbstractTy
tree =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"Tree"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Bin" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Tree" [ValT AbstractTy
a], TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Tree" [ValT AbstractTy
a]],
ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Tip" [ValT AbstractTy
a]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)
weirderList :: DataDeclaration AbstractTy
weirderList :: DataDeclaration AbstractTy
weirderList =
DeclBuilder -> DataDeclaration AbstractTy
mkDecl (DeclBuilder -> DataDeclaration AbstractTy)
-> DeclBuilder -> DataDeclaration AbstractTy
forall a b. (a -> b) -> a -> b
$
TyName
-> Count "tyvar" -> [CtorBuilder] -> DataEncoding -> DeclBuilder
Decl
TyName
"WeirderList"
Count "tyvar"
forall (ofWhat :: Symbol). Count ofWhat
count1
[ ConstructorName -> [ValT AbstractTy] -> CtorBuilder
Ctor ConstructorName
"Uncons" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Maybe" [TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"Pair" [ValT AbstractTy
a, TyName -> [ValT AbstractTy] -> ValT AbstractTy
tycon TyName
"WeirderList" [ValT AbstractTy
a]]]]
]
(PlutusDataStrategy -> DataEncoding
PlutusData PlutusDataStrategy
ConstrData)