Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
The interface to Plutus V3 for the ledger.
Synopsis
- type SerialisedScript = ShortByteString
- data ScriptForEvaluation
- serialisedScript ∷ ScriptForEvaluation → SerialisedScript
- deserialisedScript ∷ ScriptForEvaluation → ScriptNamedDeBruijn
- serialiseCompiledCode ∷ ∀ a. CompiledCode a → SerialisedScript
- serialiseUPLC ∷ Program DeBruijn DefaultUni DefaultFun () → SerialisedScript
- deserialiseScript ∷ ∀ m. MonadError ScriptDecodeError m ⇒ MajorProtocolVersion → SerialisedScript → m ScriptForEvaluation
- uncheckedDeserialiseUPLC ∷ SerialisedScript → Program DeBruijn DefaultUni DefaultFun ()
- evaluateScriptRestricting ∷ MajorProtocolVersion → VerboseMode → EvaluationContext → ExBudget → ScriptForEvaluation → Data → (LogOutput, Either EvaluationError ExBudget)
- evaluateScriptCounting ∷ MajorProtocolVersion → VerboseMode → EvaluationContext → ScriptForEvaluation → Data → (LogOutput, Either EvaluationError ExBudget)
- newtype ColdCommitteeCredential = ColdCommitteeCredential Credential
- newtype HotCommitteeCredential = HotCommitteeCredential Credential
- newtype DRepCredential = DRepCredential Credential
- data DRep
- pattern DRep ∷ DRepCredential → DRep
- pattern DRepAlwaysAbstain ∷ DRep
- pattern DRepAlwaysNoConfidence ∷ DRep
- data Delegatee
- pattern DelegStake ∷ PubKeyHash → Delegatee
- pattern DelegVote ∷ DRep → Delegatee
- pattern DelegStakeVote ∷ PubKeyHash → DRep → Delegatee
- data TxCert
- pattern TxCertRegStaking ∷ Credential → Maybe Lovelace → TxCert
- pattern TxCertUnRegStaking ∷ Credential → Maybe Lovelace → TxCert
- pattern TxCertDelegStaking ∷ Credential → Delegatee → TxCert
- pattern TxCertRegDeleg ∷ Credential → Delegatee → Lovelace → TxCert
- pattern TxCertRegDRep ∷ DRepCredential → Lovelace → TxCert
- pattern TxCertUpdateDRep ∷ DRepCredential → TxCert
- pattern TxCertUnRegDRep ∷ DRepCredential → Lovelace → TxCert
- pattern TxCertPoolRegister ∷ PubKeyHash → PubKeyHash → TxCert
- pattern TxCertPoolRetire ∷ PubKeyHash → Integer → TxCert
- pattern TxCertAuthHotCommittee ∷ ColdCommitteeCredential → HotCommitteeCredential → TxCert
- pattern TxCertResignColdCommittee ∷ ColdCommitteeCredential → TxCert
- data Voter
- pattern CommitteeVoter ∷ HotCommitteeCredential → Voter
- pattern DRepVoter ∷ DRepCredential → Voter
- pattern StakePoolVoter ∷ PubKeyHash → Voter
- data Vote
- pattern VoteNo ∷ Vote
- pattern VoteYes ∷ Vote
- pattern Abstain ∷ Vote
- data GovernanceActionId
- gaidTxId ∷ GovernanceActionId → TxId
- gaidGovActionIx ∷ GovernanceActionId → Integer
- data Committee
- pattern Committee ∷ Map ColdCommitteeCredential Integer → Rational → Committee
- committeeMembers ∷ Committee → Map ColdCommitteeCredential Integer
- committeeQuorum ∷ Committee → Rational
- newtype Constitution = Constitution {}
- data ProtocolVersion
- pattern ProtocolVersion ∷ Integer → Integer → ProtocolVersion
- pvMajor ∷ ProtocolVersion → Integer
- pvMinor ∷ ProtocolVersion → Integer
- data GovernanceAction
- pattern ParameterChange ∷ Maybe GovernanceActionId → ChangedParameters → Maybe ScriptHash → GovernanceAction
- pattern HardForkInitiation ∷ Maybe GovernanceActionId → ProtocolVersion → GovernanceAction
- pattern TreasuryWithdrawals ∷ Map Credential Lovelace → Maybe ScriptHash → GovernanceAction
- pattern NoConfidence ∷ Maybe GovernanceActionId → GovernanceAction
- pattern UpdateCommittee ∷ Maybe GovernanceActionId → List ColdCommitteeCredential → Map ColdCommitteeCredential Integer → Rational → GovernanceAction
- pattern NewConstitution ∷ Maybe GovernanceActionId → Constitution → GovernanceAction
- pattern InfoAction ∷ GovernanceAction
- newtype ChangedParameters = ChangedParameters {}
- data ProposalProcedure
- pattern ProposalProcedure ∷ Lovelace → Credential → GovernanceAction → ProposalProcedure
- ppDeposit ∷ ProposalProcedure → Lovelace
- ppReturnAddr ∷ ProposalProcedure → Credential
- ppGovernanceAction ∷ ProposalProcedure → GovernanceAction
- newtype MajorProtocolVersion = MajorProtocolVersion {}
- data VerboseMode
- type LogOutput = [Text]
- data ExBudget = ExBudget {}
- newtype ExCPU = ExCPU CostingInteger
- newtype ExMemory = ExMemory CostingInteger
- data SatInt
- fromSatInt ∷ Num a ⇒ SatInt → a
- data EvaluationContext
- mkEvaluationContext ∷ (MonadError CostModelApplyError m, MonadWriter [CostModelApplyWarn] m) ⇒ [Int64] → m EvaluationContext
- data ParamName
- = AddInteger'cpu'arguments'intercept
- | AddInteger'cpu'arguments'slope
- | AddInteger'memory'arguments'intercept
- | AddInteger'memory'arguments'slope
- | AppendByteString'cpu'arguments'intercept
- | AppendByteString'cpu'arguments'slope
- | AppendByteString'memory'arguments'intercept
- | AppendByteString'memory'arguments'slope
- | AppendString'cpu'arguments'intercept
- | AppendString'cpu'arguments'slope
- | AppendString'memory'arguments'intercept
- | AppendString'memory'arguments'slope
- | BData'cpu'arguments
- | BData'memory'arguments
- | Blake2b_256'cpu'arguments'intercept
- | Blake2b_256'cpu'arguments'slope
- | Blake2b_256'memory'arguments
- | CekApplyCost'exBudgetCPU
- | CekApplyCost'exBudgetMemory
- | CekBuiltinCost'exBudgetCPU
- | CekBuiltinCost'exBudgetMemory
- | CekConstCost'exBudgetCPU
- | CekConstCost'exBudgetMemory
- | CekDelayCost'exBudgetCPU
- | CekDelayCost'exBudgetMemory
- | CekForceCost'exBudgetCPU
- | CekForceCost'exBudgetMemory
- | CekLamCost'exBudgetCPU
- | CekLamCost'exBudgetMemory
- | CekStartupCost'exBudgetCPU
- | CekStartupCost'exBudgetMemory
- | CekVarCost'exBudgetCPU
- | CekVarCost'exBudgetMemory
- | ChooseData'cpu'arguments
- | ChooseData'memory'arguments
- | ChooseList'cpu'arguments
- | ChooseList'memory'arguments
- | ChooseUnit'cpu'arguments
- | ChooseUnit'memory'arguments
- | ConsByteString'cpu'arguments'intercept
- | ConsByteString'cpu'arguments'slope
- | ConsByteString'memory'arguments'intercept
- | ConsByteString'memory'arguments'slope
- | ConstrData'cpu'arguments
- | ConstrData'memory'arguments
- | DecodeUtf8'cpu'arguments'intercept
- | DecodeUtf8'cpu'arguments'slope
- | DecodeUtf8'memory'arguments'intercept
- | DecodeUtf8'memory'arguments'slope
- | DivideInteger'cpu'arguments'constant
- | DivideInteger'cpu'arguments'model'arguments'c00
- | DivideInteger'cpu'arguments'model'arguments'c01
- | DivideInteger'cpu'arguments'model'arguments'c02
- | DivideInteger'cpu'arguments'model'arguments'c10
- | DivideInteger'cpu'arguments'model'arguments'c11
- | DivideInteger'cpu'arguments'model'arguments'c20
- | DivideInteger'cpu'arguments'model'arguments'minimum
- | DivideInteger'memory'arguments'intercept
- | DivideInteger'memory'arguments'minimum
- | DivideInteger'memory'arguments'slope
- | EncodeUtf8'cpu'arguments'intercept
- | EncodeUtf8'cpu'arguments'slope
- | EncodeUtf8'memory'arguments'intercept
- | EncodeUtf8'memory'arguments'slope
- | EqualsByteString'cpu'arguments'constant
- | EqualsByteString'cpu'arguments'intercept
- | EqualsByteString'cpu'arguments'slope
- | EqualsByteString'memory'arguments
- | EqualsData'cpu'arguments'intercept
- | EqualsData'cpu'arguments'slope
- | EqualsData'memory'arguments
- | EqualsInteger'cpu'arguments'intercept
- | EqualsInteger'cpu'arguments'slope
- | EqualsInteger'memory'arguments
- | EqualsString'cpu'arguments'constant
- | EqualsString'cpu'arguments'intercept
- | EqualsString'cpu'arguments'slope
- | EqualsString'memory'arguments
- | FstPair'cpu'arguments
- | FstPair'memory'arguments
- | HeadList'cpu'arguments
- | HeadList'memory'arguments
- | IData'cpu'arguments
- | IData'memory'arguments
- | IfThenElse'cpu'arguments
- | IfThenElse'memory'arguments
- | IndexByteString'cpu'arguments
- | IndexByteString'memory'arguments
- | LengthOfByteString'cpu'arguments
- | LengthOfByteString'memory'arguments
- | LessThanByteString'cpu'arguments'intercept
- | LessThanByteString'cpu'arguments'slope
- | LessThanByteString'memory'arguments
- | LessThanEqualsByteString'cpu'arguments'intercept
- | LessThanEqualsByteString'cpu'arguments'slope
- | LessThanEqualsByteString'memory'arguments
- | LessThanEqualsInteger'cpu'arguments'intercept
- | LessThanEqualsInteger'cpu'arguments'slope
- | LessThanEqualsInteger'memory'arguments
- | LessThanInteger'cpu'arguments'intercept
- | LessThanInteger'cpu'arguments'slope
- | LessThanInteger'memory'arguments
- | ListData'cpu'arguments
- | ListData'memory'arguments
- | MapData'cpu'arguments
- | MapData'memory'arguments
- | MkCons'cpu'arguments
- | MkCons'memory'arguments
- | MkNilData'cpu'arguments
- | MkNilData'memory'arguments
- | MkNilPairData'cpu'arguments
- | MkNilPairData'memory'arguments
- | MkPairData'cpu'arguments
- | MkPairData'memory'arguments
- | ModInteger'cpu'arguments'constant
- | ModInteger'cpu'arguments'model'arguments'c00
- | ModInteger'cpu'arguments'model'arguments'c01
- | ModInteger'cpu'arguments'model'arguments'c02
- | ModInteger'cpu'arguments'model'arguments'c10
- | ModInteger'cpu'arguments'model'arguments'c11
- | ModInteger'cpu'arguments'model'arguments'c20
- | ModInteger'cpu'arguments'model'arguments'minimum
- | ModInteger'memory'arguments'intercept
- | ModInteger'memory'arguments'slope
- | MultiplyInteger'cpu'arguments'intercept
- | MultiplyInteger'cpu'arguments'slope
- | MultiplyInteger'memory'arguments'intercept
- | MultiplyInteger'memory'arguments'slope
- | NullList'cpu'arguments
- | NullList'memory'arguments
- | QuotientInteger'cpu'arguments'constant
- | QuotientInteger'cpu'arguments'model'arguments'c00
- | QuotientInteger'cpu'arguments'model'arguments'c01
- | QuotientInteger'cpu'arguments'model'arguments'c02
- | QuotientInteger'cpu'arguments'model'arguments'c10
- | QuotientInteger'cpu'arguments'model'arguments'c11
- | QuotientInteger'cpu'arguments'model'arguments'c20
- | QuotientInteger'cpu'arguments'model'arguments'minimum
- | QuotientInteger'memory'arguments'intercept
- | QuotientInteger'memory'arguments'minimum
- | QuotientInteger'memory'arguments'slope
- | RemainderInteger'cpu'arguments'constant
- | RemainderInteger'cpu'arguments'model'arguments'c00
- | RemainderInteger'cpu'arguments'model'arguments'c01
- | RemainderInteger'cpu'arguments'model'arguments'c02
- | RemainderInteger'cpu'arguments'model'arguments'c10
- | RemainderInteger'cpu'arguments'model'arguments'c11
- | RemainderInteger'cpu'arguments'model'arguments'c20
- | RemainderInteger'cpu'arguments'model'arguments'minimum
- | RemainderInteger'memory'arguments'intercept
- | RemainderInteger'memory'arguments'slope
- | SerialiseData'cpu'arguments'intercept
- | SerialiseData'cpu'arguments'slope
- | SerialiseData'memory'arguments'intercept
- | SerialiseData'memory'arguments'slope
- | Sha2_256'cpu'arguments'intercept
- | Sha2_256'cpu'arguments'slope
- | Sha2_256'memory'arguments
- | Sha3_256'cpu'arguments'intercept
- | Sha3_256'cpu'arguments'slope
- | Sha3_256'memory'arguments
- | SliceByteString'cpu'arguments'intercept
- | SliceByteString'cpu'arguments'slope
- | SliceByteString'memory'arguments'intercept
- | SliceByteString'memory'arguments'slope
- | SndPair'cpu'arguments
- | SndPair'memory'arguments
- | SubtractInteger'cpu'arguments'intercept
- | SubtractInteger'cpu'arguments'slope
- | SubtractInteger'memory'arguments'intercept
- | SubtractInteger'memory'arguments'slope
- | TailList'cpu'arguments
- | TailList'memory'arguments
- | Trace'cpu'arguments
- | Trace'memory'arguments
- | UnBData'cpu'arguments
- | UnBData'memory'arguments
- | UnConstrData'cpu'arguments
- | UnConstrData'memory'arguments
- | UnIData'cpu'arguments
- | UnIData'memory'arguments
- | UnListData'cpu'arguments
- | UnListData'memory'arguments
- | UnMapData'cpu'arguments
- | UnMapData'memory'arguments
- | VerifyEcdsaSecp256k1Signature'cpu'arguments
- | VerifyEcdsaSecp256k1Signature'memory'arguments
- | VerifyEd25519Signature'cpu'arguments'intercept
- | VerifyEd25519Signature'cpu'arguments'slope
- | VerifyEd25519Signature'memory'arguments
- | VerifySchnorrSecp256k1Signature'cpu'arguments'intercept
- | VerifySchnorrSecp256k1Signature'cpu'arguments'slope
- | VerifySchnorrSecp256k1Signature'memory'arguments
- | CekConstrCost'exBudgetCPU
- | CekConstrCost'exBudgetMemory
- | CekCaseCost'exBudgetCPU
- | CekCaseCost'exBudgetMemory
- | Bls12_381_G1_add'cpu'arguments
- | Bls12_381_G1_add'memory'arguments
- | Bls12_381_G1_compress'cpu'arguments
- | Bls12_381_G1_compress'memory'arguments
- | Bls12_381_G1_equal'cpu'arguments
- | Bls12_381_G1_equal'memory'arguments
- | Bls12_381_G1_hashToGroup'cpu'arguments'intercept
- | Bls12_381_G1_hashToGroup'cpu'arguments'slope
- | Bls12_381_G1_hashToGroup'memory'arguments
- | Bls12_381_G1_neg'cpu'arguments
- | Bls12_381_G1_neg'memory'arguments
- | Bls12_381_G1_scalarMul'cpu'arguments'intercept
- | Bls12_381_G1_scalarMul'cpu'arguments'slope
- | Bls12_381_G1_scalarMul'memory'arguments
- | Bls12_381_G1_uncompress'cpu'arguments
- | Bls12_381_G1_uncompress'memory'arguments
- | Bls12_381_G2_add'cpu'arguments
- | Bls12_381_G2_add'memory'arguments
- | Bls12_381_G2_compress'cpu'arguments
- | Bls12_381_G2_compress'memory'arguments
- | Bls12_381_G2_equal'cpu'arguments
- | Bls12_381_G2_equal'memory'arguments
- | Bls12_381_G2_hashToGroup'cpu'arguments'intercept
- | Bls12_381_G2_hashToGroup'cpu'arguments'slope
- | Bls12_381_G2_hashToGroup'memory'arguments
- | Bls12_381_G2_neg'cpu'arguments
- | Bls12_381_G2_neg'memory'arguments
- | Bls12_381_G2_scalarMul'cpu'arguments'intercept
- | Bls12_381_G2_scalarMul'cpu'arguments'slope
- | Bls12_381_G2_scalarMul'memory'arguments
- | Bls12_381_G2_uncompress'cpu'arguments
- | Bls12_381_G2_uncompress'memory'arguments
- | Bls12_381_finalVerify'cpu'arguments
- | Bls12_381_finalVerify'memory'arguments
- | Bls12_381_millerLoop'cpu'arguments
- | Bls12_381_millerLoop'memory'arguments
- | Bls12_381_mulMlResult'cpu'arguments
- | Bls12_381_mulMlResult'memory'arguments
- | Keccak_256'cpu'arguments'intercept
- | Keccak_256'cpu'arguments'slope
- | Keccak_256'memory'arguments
- | Blake2b_224'cpu'arguments'intercept
- | Blake2b_224'cpu'arguments'slope
- | Blake2b_224'memory'arguments
- | IntegerToByteString'cpu'arguments'c0
- | IntegerToByteString'cpu'arguments'c1
- | IntegerToByteString'cpu'arguments'c2
- | IntegerToByteString'memory'arguments'intercept
- | IntegerToByteString'memory'arguments'slope
- | ByteStringToInteger'cpu'arguments'c0
- | ByteStringToInteger'cpu'arguments'c1
- | ByteStringToInteger'cpu'arguments'c2
- | ByteStringToInteger'memory'arguments'intercept
- | ByteStringToInteger'memory'arguments'slope
- | AndByteString'cpu'arguments'intercept
- | AndByteString'cpu'arguments'slope1
- | AndByteString'cpu'arguments'slope2
- | AndByteString'memory'arguments'intercept
- | AndByteString'memory'arguments'slope
- | OrByteString'cpu'arguments'intercept
- | OrByteString'cpu'arguments'slope1
- | OrByteString'cpu'arguments'slope2
- | OrByteString'memory'arguments'intercept
- | OrByteString'memory'arguments'slope
- | XorByteString'cpu'arguments'intercept
- | XorByteString'cpu'arguments'slope1
- | XorByteString'cpu'arguments'slope2
- | XorByteString'memory'arguments'intercept
- | XorByteString'memory'arguments'slope
- | ComplementByteString'cpu'arguments'intercept
- | ComplementByteString'cpu'arguments'slope
- | ComplementByteString'memory'arguments'intercept
- | ComplementByteString'memory'arguments'slope
- | ReadBit'cpu'arguments
- | ReadBit'memory'arguments
- | WriteBits'cpu'arguments'intercept
- | WriteBits'cpu'arguments'slope
- | WriteBits'memory'arguments'intercept
- | WriteBits'memory'arguments'slope
- | ReplicateByte'cpu'arguments'intercept
- | ReplicateByte'cpu'arguments'slope
- | ReplicateByte'memory'arguments'intercept
- | ReplicateByte'memory'arguments'slope
- | ShiftByteString'cpu'arguments'intercept
- | ShiftByteString'cpu'arguments'slope
- | ShiftByteString'memory'arguments'intercept
- | ShiftByteString'memory'arguments'slope
- | RotateByteString'cpu'arguments'intercept
- | RotateByteString'cpu'arguments'slope
- | RotateByteString'memory'arguments'intercept
- | RotateByteString'memory'arguments'slope
- | CountSetBits'cpu'arguments'intercept
- | CountSetBits'cpu'arguments'slope
- | CountSetBits'memory'arguments
- | FindFirstSetBit'cpu'arguments'intercept
- | FindFirstSetBit'cpu'arguments'slope
- | FindFirstSetBit'memory'arguments
- | Ripemd_160'cpu'arguments'intercept
- | Ripemd_160'cpu'arguments'slope
- | Ripemd_160'memory'arguments
- data CostModelApplyError
- type CostModelParams = Map Text Int64
- assertWellFormedCostModelParams ∷ MonadError CostModelApplyError m ⇒ CostModelParams → m ()
- data ScriptContext
- pattern ScriptContext ∷ TxInfo → Redeemer → ScriptInfo → ScriptContext
- data ScriptPurpose
- pattern Minting ∷ CurrencySymbol → ScriptPurpose
- pattern Spending ∷ TxOutRef → ScriptPurpose
- pattern Rewarding ∷ Credential → ScriptPurpose
- pattern Certifying ∷ Integer → TxCert → ScriptPurpose
- pattern Voting ∷ Voter → ScriptPurpose
- pattern Proposing ∷ Integer → ProposalProcedure → ScriptPurpose
- data ScriptInfo
- pattern MintingScript ∷ CurrencySymbol → ScriptInfo
- pattern SpendingScript ∷ TxOutRef → Maybe Datum → ScriptInfo
- pattern RewardingScript ∷ Credential → ScriptInfo
- pattern CertifyingScript ∷ Integer → TxCert → ScriptInfo
- pattern VotingScript ∷ Voter → ScriptInfo
- pattern ProposingScript ∷ Integer → ProposalProcedure → ScriptInfo
- data BuiltinByteString
- toBuiltin ∷ HasToBuiltin a ⇒ a → ToBuiltin a
- fromBuiltin ∷ HasFromBuiltin arep ⇒ arep → FromBuiltin arep
- toOpaque ∷ HasToOpaque a arep ⇒ a → arep
- fromOpaque ∷ HasFromOpaque arep a ⇒ arep → a
- newtype LedgerBytes = LedgerBytes {}
- fromBytes ∷ ByteString → LedgerBytes
- data StakingCredential
- pattern StakingHash ∷ Credential → StakingCredential
- pattern StakingPtr ∷ Integer → Integer → Integer → StakingCredential
- data Credential
- pattern PubKeyCredential ∷ PubKeyHash → Credential
- pattern ScriptCredential ∷ ScriptHash → Credential
- newtype Value = Value {}
- newtype CurrencySymbol = CurrencySymbol {}
- newtype TokenName = TokenName {}
- singleton ∷ CurrencySymbol → TokenName → Integer → Value
- unionWith ∷ (Integer → Integer → Integer) → Value → Value → Value
- adaSymbol ∷ CurrencySymbol
- adaToken ∷ TokenName
- newtype Lovelace = Lovelace {}
- newtype POSIXTime = POSIXTime {}
- type POSIXTimeRange = Interval POSIXTime
- data Address
- pattern Address ∷ Credential → Maybe StakingCredential → Address
- addressCredential ∷ Address → Credential
- addressStakingCredential ∷ Address → Maybe StakingCredential
- newtype PubKeyHash = PubKeyHash {}
- newtype TxId = TxId {}
- data TxInfo
- pattern TxInfo ∷ List TxInInfo → List TxInInfo → List TxOut → Lovelace → Value → List TxCert → Map Credential Lovelace → POSIXTimeRange → List PubKeyHash → Map ScriptPurpose Redeemer → Map DatumHash Datum → TxId → Map Voter (Map GovernanceActionId Vote) → List ProposalProcedure → Maybe Lovelace → Maybe Lovelace → TxInfo
- txInfoInputs ∷ TxInfo → List TxInInfo
- txInfoReferenceInputs ∷ TxInfo → List TxInInfo
- txInfoOutputs ∷ TxInfo → List TxOut
- txInfoFee ∷ TxInfo → Lovelace
- txInfoMint ∷ TxInfo → Value
- txInfoTxCerts ∷ TxInfo → List TxCert
- txInfoWdrl ∷ TxInfo → Map Credential Lovelace
- txInfoValidRange ∷ TxInfo → POSIXTimeRange
- txInfoSignatories ∷ TxInfo → List PubKeyHash
- txInfoRedeemers ∷ TxInfo → Map ScriptPurpose Redeemer
- txInfoData ∷ TxInfo → Map DatumHash Datum
- txInfoId ∷ TxInfo → TxId
- txInfoVotes ∷ TxInfo → Map Voter (Map GovernanceActionId Vote)
- txInfoProposalProcedures ∷ TxInfo → List ProposalProcedure
- txInfoCurrentTreasuryAmount ∷ TxInfo → Maybe Lovelace
- txInfoTreasuryDonation ∷ TxInfo → Maybe Lovelace
- data TxOut
- pattern TxOut ∷ Address → Value → OutputDatum → Maybe ScriptHash → TxOut
- txOutAddress ∷ TxOut → Address
- txOutValue ∷ TxOut → Value
- txOutDatum ∷ TxOut → OutputDatum
- txOutReferenceScript ∷ TxOut → Maybe ScriptHash
- data TxOutRef
- pattern TxOutRef ∷ TxId → Integer → TxOutRef
- txOutRefId ∷ TxOutRef → TxId
- txOutRefIdx ∷ TxOutRef → Integer
- data TxInInfo
- pattern TxInInfo ∷ TxOutRef → TxOut → TxInInfo
- txInInfoOutRef ∷ TxInInfo → TxOutRef
- txInInfoResolved ∷ TxInInfo → TxOut
- data OutputDatum
- pattern NoOutputDatum ∷ OutputDatum
- pattern OutputDatum ∷ Datum → OutputDatum
- pattern OutputDatumHash ∷ DatumHash → OutputDatum
- data Interval a
- pattern Interval ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ LowerBound a → UpperBound a → Interval a
- ivFrom ∷ (ToData a, UnsafeFromData a) ⇒ Interval a → LowerBound a
- ivTo ∷ (ToData a, UnsafeFromData a) ⇒ Interval a → UpperBound a
- data Extended a
- pattern NegInf ∷ ∀ a. Extended a
- pattern PosInf ∷ ∀ a. Extended a
- pattern Finite ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ a → Extended a
- type Closure = Bool
- data UpperBound a
- pattern UpperBound ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ Extended a → Closure → UpperBound a
- data LowerBound a
- pattern LowerBound ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ Extended a → Closure → LowerBound a
- always ∷ (ToData a, UnsafeFromData a) ⇒ Interval a
- from ∷ (ToData a, UnsafeFromData a) ⇒ a → Interval a
- to ∷ (ToData a, UnsafeFromData a) ⇒ a → Interval a
- lowerBound ∷ (ToData a, UnsafeFromData a) ⇒ a → LowerBound a
- upperBound ∷ (ToData a, UnsafeFromData a) ⇒ a → UpperBound a
- strictLowerBound ∷ (ToData a, UnsafeFromData a) ⇒ a → LowerBound a
- strictUpperBound ∷ (ToData a, UnsafeFromData a) ⇒ a → UpperBound a
- data Rational
- ratio ∷ Integer → Integer → Maybe Rational
- fromGHC ∷ Rational → Rational
- toGHC ∷ Rational → Rational
- data Map k a
- unsafeFromList ∷ (ToData k, ToData a) ⇒ [(k, a)] → Map k a
- newtype ScriptHash = ScriptHash {}
- newtype Redeemer = Redeemer {}
- newtype RedeemerHash = RedeemerHash BuiltinByteString
- newtype Datum = Datum {}
- newtype DatumHash = DatumHash BuiltinByteString
- data Data
- data BuiltinData = BuiltinData ~Data
- class ToData a where
- toBuiltinData ∷ a → BuiltinData
- class FromData a where
- fromBuiltinData ∷ BuiltinData → Maybe a
- class UnsafeFromData a where
- toData ∷ ToData a ⇒ a → Data
- fromData ∷ FromData a ⇒ Data → Maybe a
- unsafeFromData ∷ UnsafeFromData a ⇒ Data → a
- dataToBuiltinData ∷ Data → BuiltinData
- builtinDataToData ∷ BuiltinData → Data
- class Monad m ⇒ MonadError e (m ∷ Type → Type) | m → e
- data EvaluationError
- data ScriptDecodeError
Scripts
type SerialisedScript = ShortByteString Source #
Scripts to the ledger are serialised bytestrings.
data ScriptForEvaluation Source #
A Plutus script ready to be evaluated on-chain, via evaluateScriptRestricting
.
Instances
Generic ScriptForEvaluation Source # | |
Defined in PlutusLedgerApi.Common.SerialisedScript | |
Show ScriptForEvaluation Source # | |
Defined in PlutusLedgerApi.Common.SerialisedScript | |
NFData ScriptForEvaluation Source # | |
Defined in PlutusLedgerApi.Common.SerialisedScript rnf ∷ ScriptForEvaluation → () Source # | |
Eq ScriptForEvaluation Source # | |
NoThunks ScriptForEvaluation Source # | |
Defined in PlutusLedgerApi.Common.SerialisedScript | |
type Rep ScriptForEvaluation Source # | |
Defined in PlutusLedgerApi.Common.SerialisedScript type Rep ScriptForEvaluation = D1 ('MetaData "ScriptForEvaluation" "PlutusLedgerApi.Common.SerialisedScript" "plutus-ledger-api-1.39.0.0-inplace" 'False) (C1 ('MetaCons "UnsafeScriptForEvaluation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SerialisedScript) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ScriptNamedDeBruijn))) |
serialisedScript ∷ ScriptForEvaluation → SerialisedScript Source #
Get a SerialisedScript
from a ScriptForEvaluation
. O(1).
deserialisedScript ∷ ScriptForEvaluation → ScriptNamedDeBruijn Source #
Get a ScriptNamedDeBruijn
from a ScriptForEvaluation
. O(1).
serialiseCompiledCode ∷ ∀ a. CompiledCode a → SerialisedScript Source #
Turns a program which was compiled using the 'PlutusTx' toolchain into a binary format that is understood by the network and can be stored on-chain.
serialiseUPLC ∷ Program DeBruijn DefaultUni DefaultFun () → SerialisedScript Source #
Turns a program's AST (most likely manually constructed) into a binary format that is understood by the network and can be stored on-chain.
∷ ∀ m. MonadError ScriptDecodeError m | |
⇒ MajorProtocolVersion | which major protocol version the script was submitted in. |
→ SerialisedScript | the script to deserialise. |
→ m ScriptForEvaluation |
The deserialization from a serialised script into a ScriptForEvaluation
,
ready to be evaluated on-chain.
Called inside phase-1 validation (i.e., deserialisation error is a phase-1 error).
uncheckedDeserialiseUPLC ∷ SerialisedScript → Program DeBruijn DefaultUni DefaultFun () Source #
Deserialises a SerialisedScript
back into an AST. Does *not* do
ledger-language-version-specific checks like for allowable builtins.
Running scripts
evaluateScriptRestricting Source #
∷ MajorProtocolVersion | Which protocol version to run the operation in |
→ VerboseMode | Whether to produce log output |
→ EvaluationContext | Includes the cost model to use for tallying up the execution costs |
→ ExBudget | The resource budget which must not be exceeded during evaluation |
→ ScriptForEvaluation | The script to evaluate |
→ Data | The |
→ (LogOutput, Either EvaluationError ExBudget) |
Evaluates a script, with a cost model and a budget that restricts how many resources it can use according to the cost model. Also returns the budget that was actually used.
Can be used to calculate budgets for scripts, but even in this case you must give a limit to guard against scripts that run for a long time or loop.
evaluateScriptCounting Source #
∷ MajorProtocolVersion | Which protocol version to run the operation in |
→ VerboseMode | Whether to produce log output |
→ EvaluationContext | Includes the cost model to use for tallying up the execution costs |
→ ScriptForEvaluation | The script to evaluate |
→ Data | The |
→ (LogOutput, Either EvaluationError ExBudget) |
Evaluates a script, returning the minimum budget that the script would need
to evaluate successfully. This will take as long as the script takes, if you need to
limit the execution time of the script also, you can use evaluateScriptRestricting
, which
also returns the used budget.
CIP-1694
newtype ColdCommitteeCredential Source #
Instances
newtype HotCommitteeCredential Source #
Instances
newtype DRepCredential Source #
Instances
Instances
Generic DRep Source # | |
Show DRep Source # | |
Eq DRep Source # | |
Eq DRep Source # | |
FromData DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
ToData DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
UnsafeFromData DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
Pretty DRep Source # | |
Lift DefaultUni DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts lift ∷ DRep → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Typeable DefaultUni DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts typeRep ∷ Proxy DRep → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # | |
type Rep DRep Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts type Rep DRep = D1 ('MetaData "DRep" "PlutusLedgerApi.V3.Data.Contexts" "plutus-ledger-api-1.39.0.0-inplace" 'True) (C1 ('MetaCons "DRep_6989586621680846073" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) |
pattern DRep ∷ DRepCredential → DRep Source #
pattern DRepAlwaysAbstain ∷ DRep Source #
pattern DRepAlwaysNoConfidence ∷ DRep Source #
Instances
pattern DelegStake ∷ PubKeyHash → Delegatee Source #
pattern DelegStakeVote ∷ PubKeyHash → DRep → Delegatee Source #
Instances
pattern TxCertRegStaking ∷ Credential → Maybe Lovelace → TxCert Source #
pattern TxCertUnRegStaking ∷ Credential → Maybe Lovelace → TxCert Source #
pattern TxCertDelegStaking ∷ Credential → Delegatee → TxCert Source #
pattern TxCertRegDeleg ∷ Credential → Delegatee → Lovelace → TxCert Source #
pattern TxCertRegDRep ∷ DRepCredential → Lovelace → TxCert Source #
pattern TxCertUpdateDRep ∷ DRepCredential → TxCert Source #
pattern TxCertUnRegDRep ∷ DRepCredential → Lovelace → TxCert Source #
pattern TxCertPoolRegister ∷ PubKeyHash → PubKeyHash → TxCert Source #
pattern TxCertPoolRetire ∷ PubKeyHash → Integer → TxCert Source #
pattern TxCertResignColdCommittee ∷ ColdCommitteeCredential → TxCert Source #
Instances
Generic Voter Source # | |
Show Voter Source # | |
Eq Voter Source # | |
Eq Voter Source # | |
FromData Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
ToData Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
UnsafeFromData Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
Pretty Voter Source # | |
Lift DefaultUni Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts lift ∷ Voter → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Typeable DefaultUni Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts typeRep ∷ Proxy Voter → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # | |
type Rep Voter Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts type Rep Voter = D1 ('MetaData "Voter" "PlutusLedgerApi.V3.Data.Contexts" "plutus-ledger-api-1.39.0.0-inplace" 'True) (C1 ('MetaCons "Voter_6989586621680850282" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) |
pattern CommitteeVoter ∷ HotCommitteeCredential → Voter Source #
pattern DRepVoter ∷ DRepCredential → Voter Source #
pattern StakePoolVoter ∷ PubKeyHash → Voter Source #
A vote. The optional anchor is omitted.
Instances
Generic Vote Source # | |
Show Vote Source # | |
Eq Vote Source # | |
Eq Vote Source # | |
FromData Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
ToData Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
UnsafeFromData Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
Pretty Vote Source # | |
Lift DefaultUni Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts lift ∷ Vote → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Typeable DefaultUni Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts typeRep ∷ Proxy Vote → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # | |
type Rep Vote Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts type Rep Vote = D1 ('MetaData "Vote" "PlutusLedgerApi.V3.Data.Contexts" "plutus-ledger-api-1.39.0.0-inplace" 'True) (C1 ('MetaCons "Vote_6989586621680851356" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) |
data GovernanceActionId Source #
Similar to TxOutRef, but for GovActions
Instances
Instances
newtype Constitution Source #
A constitution. The optional anchor is omitted.
Instances
data ProtocolVersion Source #
Instances
pattern ProtocolVersion ∷ Integer → Integer → ProtocolVersion Source #
data GovernanceAction Source #
Instances
pattern ParameterChange ∷ Maybe GovernanceActionId → ChangedParameters → Maybe ScriptHash → GovernanceAction Source #
pattern HardForkInitiation ∷ Maybe GovernanceActionId → ProtocolVersion → GovernanceAction Source #
pattern TreasuryWithdrawals ∷ Map Credential Lovelace → Maybe ScriptHash → GovernanceAction Source #
pattern NoConfidence ∷ Maybe GovernanceActionId → GovernanceAction Source #
pattern UpdateCommittee ∷ Maybe GovernanceActionId → List ColdCommitteeCredential → Map ColdCommitteeCredential Integer → Rational → GovernanceAction Source #
pattern NewConstitution ∷ Maybe GovernanceActionId → Constitution → GovernanceAction Source #
pattern InfoAction ∷ GovernanceAction Source #
newtype ChangedParameters Source #
A Plutus Data object containing proposed parameter changes. The Data object contains
a Map
with one entry per changed parameter, from the parameter ID to the new value.
Unchanged parameters are not included.
The mapping from parameter IDs to parameters can be found in conway.cddl. -- editorconfig-checker-disable-file
Invariant: This map is non-empty, and the keys are stored in ascending order.
Instances
data ProposalProcedure Source #
A proposal procedure. The optional anchor is omitted.
Instances
pattern ProposalProcedure ∷ Lovelace → Credential → GovernanceAction → ProposalProcedure Source #
Protocol version
newtype MajorProtocolVersion Source #
This represents the major component of the Cardano protocol version. The ledger can only supply the major component of the protocol version, not the minor component, and Plutus should only need to care about the major component anyway. This relies on careful understanding between us and the ledger as to what this means.
Instances
Verbose mode and log output
data VerboseMode Source #
A simple toggle indicating whether or not we should accumulate logs during script execution.
Instances
Eq VerboseMode Source # | |
Defined in PlutusLedgerApi.Common.Eval (==) ∷ VerboseMode → VerboseMode → Bool Source # (/=) ∷ VerboseMode → VerboseMode → Bool Source # |
type LogOutput = [Text] Source #
The type of the executed script's accumulated log output: a list of Text
.
It will be an empty list if the VerboseMode
is set to Quiet
.
Costing-related types
Instances
Counts CPU units in picoseconds: maximum value for SatInt is 2^63 ps, or appproximately 106 days.
Instances
FromJSON ExCPU | |
Defined in PlutusCore.Evaluation.Machine.ExMemory | |
ToJSON ExCPU | |
Defined in PlutusCore.Evaluation.Machine.ExMemory | |
Monoid ExCPU | |
Semigroup ExCPU | |
Bounded ExCPU | |
Generic ExCPU | |
Num ExCPU | |
Read ExCPU | |
Show ExCPU | |
NFData ExCPU | |
Defined in PlutusCore.Evaluation.Machine.ExMemory | |
Eq ExCPU | |
Ord ExCPU | |
Defined in PlutusCore.Evaluation.Machine.ExMemory | |
NoThunks ExCPU | |
Pretty ExCPU | |
Serialise ExCPU | |
PrettyBy config ExCPU | |
Lift ExCPU | |
type Rep ExCPU | |
Defined in PlutusCore.Evaluation.Machine.ExMemory type Rep ExCPU = D1 ('MetaData "ExCPU" "PlutusCore.Evaluation.Machine.ExMemory" "plutus-core-1.39.0.0-inplace" 'True) (C1 ('MetaCons "ExCPU" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CostingInteger))) |
Counts size in machine words.
Instances
Instances
fromSatInt ∷ Num a ⇒ SatInt → a Source #
An optimized version of fromIntegral . unSatInt
.
Cost model
data EvaluationContext Source #
An opaque type that contains all the static parameters that the evaluator needs to evaluate a script. This is so that they can be computed once and cached, rather than being recomputed on every evaluation.
Different protocol versions may require different bundles of machine parameters, which allows us for
example to tweak the shape of the costing function of a builtin, so that the builtin costs less.
Currently this means that we have to create multiple DefaultMachineParameters
per language
version, which we put into a cache (represented by an association list) in order to avoid costly
recomputation of machine parameters.
In order to get the appropriate DefaultMachineParameters
at validation time we look it up in the
cache using a semantics variant as a key. We compute the semantics variant from the protocol
version using the stored function. Note that the semantics variant depends on the language version
too, but the latter is known statically (because each language version has its own evaluation
context), hence there's no reason to require it to be provided at runtime.
To say it differently, there's a matrix of semantics variants indexed by (LL, PV) pairs and we
cache its particular row corresponding to the statically given LL in an EvaluationContext
.
The reason why we associate a DefaultMachineParameters
with a semantics variant rather than a
protocol version are
- generally there are far more protocol versions than semantics variants supported by a specific language version, so we save on pointless duplication of bundles of machine parameters
- builtins don't know anything about protocol versions, only semantics variants. It is therefore more semantically precise to associate bundles of machine parameters with semantics variants than with protocol versions
Instances
∷ (MonadError CostModelApplyError m, MonadWriter [CostModelApplyWarn] m) | |
⇒ [Int64] | the (updated) cost model parameters of the protocol |
→ m EvaluationContext |
Build the EvaluationContext
.
The input is a list of cost model parameters (which are integer values) passed from the ledger.
IMPORTANT: the cost model parameters MUST appear in the correct order,
matching the names in ParamName
. If the parameters are
supplied in the wrong order then script cost calculations will be incorrect.
IMPORTANT: The evaluation context of every Plutus version must be recreated upon a protocol update with the updated cost model parameters.
The enumeration of all possible cost model parameter names for this language version.
IMPORTANT: The order of appearance of the data constructors here matters. DO NOT REORDER. See Note [Quotation marks in cost model parameter constructors] See Note [Cost model parameters from the ledger's point of view]
Instances
Bounded ParamName Source # | |
Enum ParamName Source # | |
Defined in PlutusLedgerApi.V3.ParamName succ ∷ ParamName → ParamName Source # pred ∷ ParamName → ParamName Source # toEnum ∷ Int → ParamName Source # fromEnum ∷ ParamName → Int Source # enumFrom ∷ ParamName → [ParamName] Source # enumFromThen ∷ ParamName → ParamName → [ParamName] Source # enumFromTo ∷ ParamName → ParamName → [ParamName] Source # enumFromThenTo ∷ ParamName → ParamName → ParamName → [ParamName] Source # | |
Generic ParamName Source # | |
Ix ParamName Source # | |
Defined in PlutusLedgerApi.V3.ParamName | |
Eq ParamName Source # | |
Ord ParamName Source # | |
Defined in PlutusLedgerApi.V3.ParamName | |
IsParamName ParamName Source # | |
Defined in PlutusLedgerApi.V3.ParamName | |
type Rep ParamName Source # | |
Defined in PlutusLedgerApi.V3.ParamName type Rep ParamName = D1 ('MetaData "ParamName" "PlutusLedgerApi.V3.ParamName" "plutus-ledger-api-1.39.0.0-inplace" 'False) ((((((((C1 ('MetaCons "AddInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AddInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "AddInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AddInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "AppendByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AppendByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "AppendByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "AppendByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AppendString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "AppendString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AppendString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "AppendString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "BData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "BData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Blake2b_256'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Blake2b_256'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Blake2b_256'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekApplyCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "CekApplyCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekBuiltinCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "CekBuiltinCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekConstCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "CekConstCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekDelayCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "CekDelayCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "CekForceCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekForceCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "CekLamCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekLamCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "CekStartupCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "CekStartupCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekVarCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "CekVarCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ChooseData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ChooseData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ChooseList'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ChooseList'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))))) :+: (((((C1 ('MetaCons "ChooseUnit'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ChooseUnit'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ConsByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ConsByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "ConsByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ConsByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ConstrData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ConstrData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DecodeUtf8'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "DecodeUtf8'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DecodeUtf8'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "DecodeUtf8'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DivideInteger'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c00" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c01" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c02" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c10" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c11" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'c20" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DivideInteger'cpu'arguments'model'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "DivideInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "DivideInteger'memory'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "DivideInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EncodeUtf8'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "EncodeUtf8'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "EncodeUtf8'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EncodeUtf8'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "EqualsByteString'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "EqualsByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "EqualsByteString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsData'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "EqualsData'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "EqualsInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "EqualsInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsInteger'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))))) :+: ((((((C1 ('MetaCons "EqualsString'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "EqualsString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "EqualsString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "FstPair'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "FstPair'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "HeadList'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "HeadList'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "IData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IfThenElse'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "IfThenElse'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IndexByteString'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "IndexByteString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LengthOfByteString'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "LengthOfByteString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "LessThanByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LessThanByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "LessThanByteString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LessThanEqualsByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "LessThanEqualsByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LessThanEqualsByteString'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "LessThanEqualsInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LessThanEqualsInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "LessThanEqualsInteger'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "LessThanInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "LessThanInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "LessThanInteger'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ListData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ListData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "MapData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "MapData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "MkCons'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "MkCons'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "MkNilData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "MkNilData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "MkNilPairData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))))) :+: (((((C1 ('MetaCons "MkNilPairData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "MkPairData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "MkPairData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ModInteger'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c00" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c01" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c02" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c10" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c11" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'c20" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ModInteger'cpu'arguments'model'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ModInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ModInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "MultiplyInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "MultiplyInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "MultiplyInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "MultiplyInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "NullList'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "NullList'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "QuotientInteger'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c00" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c01" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c02" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c10" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c11" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'c20" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "QuotientInteger'cpu'arguments'model'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "QuotientInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "QuotientInteger'memory'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "QuotientInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "RemainderInteger'cpu'arguments'constant" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c00" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c01" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c02" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c10" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c11" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'c20" 'PrefixI 'False) (U1 ∷ Type → Type))))))))) :+: (((((((C1 ('MetaCons "RemainderInteger'cpu'arguments'model'arguments'minimum" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "RemainderInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "RemainderInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SerialiseData'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "SerialiseData'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SerialiseData'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "SerialiseData'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Sha2_256'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Sha2_256'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "Sha2_256'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Sha3_256'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Sha3_256'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Sha3_256'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "SliceByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SliceByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "SliceByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "SliceByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SndPair'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "SndPair'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SubtractInteger'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "SubtractInteger'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "SubtractInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "SubtractInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "TailList'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "TailList'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Trace'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Trace'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "UnBData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "UnBData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "UnConstrData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "UnConstrData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "UnIData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "UnIData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "UnListData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "UnListData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "UnMapData'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "UnMapData'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))))) :+: (((((C1 ('MetaCons "VerifyEcdsaSecp256k1Signature'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "VerifyEcdsaSecp256k1Signature'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "VerifyEd25519Signature'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "VerifyEd25519Signature'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "VerifyEd25519Signature'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "VerifySchnorrSecp256k1Signature'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "VerifySchnorrSecp256k1Signature'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "VerifySchnorrSecp256k1Signature'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekConstrCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "CekConstrCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CekCaseCost'exBudgetCPU" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "CekCaseCost'exBudgetMemory" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_add'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "Bls12_381_G1_add'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_compress'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G1_compress'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Bls12_381_G1_equal'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_equal'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "Bls12_381_G1_hashToGroup'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_hashToGroup'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G1_hashToGroup'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_neg'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "Bls12_381_G1_neg'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_scalarMul'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G1_scalarMul'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Bls12_381_G1_scalarMul'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G1_uncompress'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "Bls12_381_G1_uncompress'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_add'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G2_add'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Bls12_381_G2_compress'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_compress'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "Bls12_381_G2_equal'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_equal'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G2_hashToGroup'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Bls12_381_G2_hashToGroup'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_hashToGroup'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))))) :+: ((((((C1 ('MetaCons "Bls12_381_G2_neg'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_neg'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G2_scalarMul'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_scalarMul'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "Bls12_381_G2_scalarMul'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_G2_uncompress'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_G2_uncompress'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Bls12_381_finalVerify'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_finalVerify'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "Bls12_381_millerLoop'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_millerLoop'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Bls12_381_mulMlResult'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Bls12_381_mulMlResult'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "Keccak_256'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Keccak_256'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Keccak_256'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Blake2b_224'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Blake2b_224'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "Blake2b_224'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IntegerToByteString'cpu'arguments'c0" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "IntegerToByteString'cpu'arguments'c1" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IntegerToByteString'cpu'arguments'c2" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "IntegerToByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "IntegerToByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ByteStringToInteger'cpu'arguments'c0" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ByteStringToInteger'cpu'arguments'c1" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ByteStringToInteger'cpu'arguments'c2" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "ByteStringToInteger'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ByteStringToInteger'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "AndByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "AndByteString'cpu'arguments'slope1" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AndByteString'cpu'arguments'slope2" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "AndByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "AndByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "OrByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "OrByteString'cpu'arguments'slope1" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "OrByteString'cpu'arguments'slope2" 'PrefixI 'False) (U1 ∷ Type → Type))))))) :+: (((((C1 ('MetaCons "OrByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "OrByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "XorByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "XorByteString'cpu'arguments'slope1" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "XorByteString'cpu'arguments'slope2" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "XorByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "XorByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ComplementByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ComplementByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "ComplementByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ComplementByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ReadBit'cpu'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ReadBit'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "WriteBits'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "WriteBits'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "WriteBits'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "WriteBits'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "ReplicateByte'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ReplicateByte'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)))))) :+: ((((C1 ('MetaCons "ReplicateByte'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ReplicateByte'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "ShiftByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ShiftByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type))) :+: ((C1 ('MetaCons "ShiftByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "ShiftByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "RotateByteString'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "RotateByteString'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "RotateByteString'memory'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type))))) :+: (((C1 ('MetaCons "RotateByteString'memory'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "CountSetBits'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "CountSetBits'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "CountSetBits'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "FindFirstSetBit'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type)))) :+: ((C1 ('MetaCons "FindFirstSetBit'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "FindFirstSetBit'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)) :+: (C1 ('MetaCons "Ripemd_160'cpu'arguments'intercept" 'PrefixI 'False) (U1 ∷ Type → Type) :+: (C1 ('MetaCons "Ripemd_160'cpu'arguments'slope" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "Ripemd_160'memory'arguments" 'PrefixI 'False) (U1 ∷ Type → Type)))))))))) |
data CostModelApplyError Source #
A fatal error when trying to create a cost given some plain costmodel parameters.
CMUnknownParamError !Text | a costmodel parameter with the give name does not exist in the costmodel to be applied upon |
CMInternalReadError | internal error when we are transforming the applyParams' input to json (should not happen) |
CMInternalWriteError !String | internal error when we are transforming the applied params from json with given jsonstring error (should not happen) |
Instances
type CostModelParams = Map Text Int64 Source #
A raw representation of the ledger's cost model parameters.
The associated keys/names to the parameter values are arbitrarily set by the plutus team; the ledger does not hold any such names.
See Note [Cost model parameters]
assertWellFormedCostModelParams ∷ MonadError CostModelApplyError m ⇒ CostModelParams → m () Source #
Context types
data ScriptContext Source #
The context that the currently-executing script can access.
Instances
pattern ScriptContext ∷ TxInfo → Redeemer → ScriptInfo → ScriptContext Source #
data ScriptPurpose Source #
A ScriptPurpose
uniquely identifies a Plutus script within a transaction.
Instances
pattern Minting ∷ CurrencySymbol → ScriptPurpose Source #
pattern Spending ∷ TxOutRef → ScriptPurpose Source #
pattern Rewarding ∷ Credential → ScriptPurpose Source #
pattern Certifying ∷ Integer → TxCert → ScriptPurpose Source #
pattern Voting ∷ Voter → ScriptPurpose Source #
pattern Proposing ∷ Integer → ProposalProcedure → ScriptPurpose Source #
data ScriptInfo Source #
Like ScriptPurpose
but with an optional datum for spending scripts.
Instances
pattern MintingScript ∷ CurrencySymbol → ScriptInfo Source #
pattern SpendingScript ∷ TxOutRef → Maybe Datum → ScriptInfo Source #
pattern RewardingScript ∷ Credential → ScriptInfo Source #
pattern CertifyingScript ∷ Integer → TxCert → ScriptInfo Source #
pattern VotingScript ∷ Voter → ScriptInfo Source #
pattern ProposingScript ∷ Integer → ProposalProcedure → ScriptInfo Source #
Supporting types used in the context types
Builtins
data BuiltinByteString Source #
An opaque type representing Plutus Core ByteStrings.
Instances
toBuiltin ∷ HasToBuiltin a ⇒ a → ToBuiltin a Source #
fromBuiltin ∷ HasFromBuiltin arep ⇒ arep → FromBuiltin arep Source #
toOpaque ∷ HasToOpaque a arep ⇒ a → arep Source #
fromOpaque ∷ HasFromOpaque arep a ⇒ arep → a Source #
Bytes
newtype LedgerBytes Source #
Instances
fromBytes ∷ ByteString → LedgerBytes Source #
Lift a Haskell bytestring to the Plutus abstraction LedgerBytes
Credentials
data StakingCredential Source #
Staking credential used to assign rewards.
The staking hash constructor is the Credential
required to unlock a
transaction output. Either a public key credential (PubKeyHash
) or
a script credential (ScriptHash
). Both are hashed with BLAKE2b-244. 28 byte.
The StakingPtr
constructor is the certificate pointer, constructed by the given
slot number, transaction and certificate indices.
NB: The fields should really be all Word64
, as they are implemented in Word64
,
but Integer
is our only integral type so we need to use it instead.
Instances
pattern StakingHash ∷ Credential → StakingCredential Source #
pattern StakingPtr ∷ Integer → Integer → Integer → StakingCredential Source #
data Credential Source #
Credentials required to unlock a transaction output.
The PubKeyCredential
constructor represents the transaction that
spends this output and must be signed by the private key.
See PubKeyHash
.
The ScriptCredential
constructor represents the transaction that spends
this output must include the validator script and
be accepted by the validator. See ScriptHash
.
Instances
pattern PubKeyCredential ∷ PubKeyHash → Credential Source #
pattern ScriptCredential ∷ ScriptHash → Credential Source #
Value
The Value
type represents a collection of amounts of different currencies.
We can think of Value
as a vector space whose dimensions are currencies.
Operations on currencies are usually implemented pointwise. That is,
we apply the operation to the quantities for each currency in turn. So
when we add two Value
s the resulting Value
has, for each currency,
the sum of the quantities of that particular currency in the argument
Value
. The effect of this is that the currencies in the Value
are "independent",
and are operated on separately.
Whenever we need to get the quantity of a currency in a Value
where there
is no explicit quantity of that currency in the Value
, then the quantity is
taken to be zero.
There is no 'Ord Value' instance since Value
is only a partial order, so compare
can't
do the right thing in some cases.
Instances
newtype CurrencySymbol Source #
ByteString representing the currency, hashed with BLAKE2b-224.
It is empty for Ada
, 28 bytes for MintingPolicyHash
.
Forms an AssetClass
along with TokenName
.
A Value
is a map from CurrencySymbol
's to a map from TokenName
to an Integer
.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification. -- editorconfig-checker-disable-file
Instances
ByteString of a name of a token.
Shown as UTF-8 string when possible.
Should be no longer than 32 bytes, empty for Ada.
Forms an AssetClass
along with a CurrencySymbol
.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification. -- editorconfig-checker-disable-file
Instances
singleton ∷ CurrencySymbol → TokenName → Integer → Value Source #
Make a Value
containing only the given quantity of the given currency.
unionWith ∷ (Integer → Integer → Integer) → Value → Value → Value Source #
Combine two Value
maps with the argument function.
Assumes the well-definedness of the two maps.
adaSymbol ∷ CurrencySymbol Source #
The CurrencySymbol
of the Ada
currency.
Instances
Time
POSIX time is measured as the number of milliseconds since 1970-01-01T00:00:00Z.
This is not the same as Haskell's POSIXTime
Instances
Types for representing transactions
An address may contain two credentials,
the payment credential and optionally a StakingCredential
.
Instances
pattern Address ∷ Credential → Maybe StakingCredential → Address Source #
newtype PubKeyHash Source #
The hash of a public key. This is frequently used to identify the public key, rather than the key itself. Hashed with BLAKE2b-224. 28 bytes.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.
Instances
A transaction ID, i.e. the hash of a transaction. Hashed with BLAKE2b-256. 32 byte.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.
Instances
TxInfo for PlutusV3
Instances
Generic TxInfo Source # | |
Show TxInfo Source # | |
FromData TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
ToData TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
UnsafeFromData TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts | |
Pretty TxInfo Source # | |
Lift DefaultUni TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts lift ∷ TxInfo → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Typeable DefaultUni TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts typeRep ∷ Proxy TxInfo → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # | |
type Rep TxInfo Source # | |
Defined in PlutusLedgerApi.V3.Data.Contexts type Rep TxInfo = D1 ('MetaData "TxInfo" "PlutusLedgerApi.V3.Data.Contexts" "plutus-ledger-api-1.39.0.0-inplace" 'True) (C1 ('MetaCons "TxInfo_6989586621680863458" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) |
pattern TxInfo ∷ List TxInInfo → List TxInInfo → List TxOut → Lovelace → Value → List TxCert → Map Credential Lovelace → POSIXTimeRange → List PubKeyHash → Map ScriptPurpose Redeemer → Map DatumHash Datum → TxId → Map Voter (Map GovernanceActionId Vote) → List ProposalProcedure → Maybe Lovelace → Maybe Lovelace → TxInfo Source #
txInfoMint ∷ TxInfo → Value Source #
A transaction output, consisting of a target address, a value, optionally a datum/datum hash, and optionally a reference script.
Instances
Generic TxOut Source # | |
Show TxOut Source # | |
Eq TxOut Source # | |
Eq TxOut Source # | |
FromData TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx | |
ToData TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx | |
UnsafeFromData TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx | |
Pretty TxOut Source # | |
Lift DefaultUni TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx lift ∷ TxOut → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Typeable DefaultUni TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx typeRep ∷ Proxy TxOut → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # | |
type Rep TxOut Source # | |
Defined in PlutusLedgerApi.V2.Data.Tx type Rep TxOut = D1 ('MetaData "TxOut" "PlutusLedgerApi.V2.Data.Tx" "plutus-ledger-api-1.39.0.0-inplace" 'True) (C1 ('MetaCons "TxOut_6989586621680768021" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) |
pattern TxOut ∷ Address → Value → OutputDatum → Maybe ScriptHash → TxOut Source #
txOutAddress ∷ TxOut → Address Source #
txOutValue ∷ TxOut → Value Source #
A reference to a transaction output. This is a
pair of a transaction ID (TxId
), and an index indicating which of the outputs
of that transaction we are referring to.
Instances
txOutRefId ∷ TxOutRef → TxId Source #
An input of a pending transaction.
Instances
data OutputDatum Source #
The datum attached to an output: either nothing; a datum hash; or the datum itself (an "inline datum").
Instances
pattern NoOutputDatum ∷ OutputDatum Source #
pattern OutputDatum ∷ Datum → OutputDatum Source #
pattern OutputDatumHash ∷ DatumHash → OutputDatum Source #
Intervals
An interval of a
s.
The interval may be either closed or open at either end, meaning that the endpoints may or may not be included in the interval.
The interval can also be unbounded on either side.
The Eq
instance gives equality of the intervals, not structural equality.
There is no Ord
instance, but contains
gives a partial order.
Note that some of the functions on Interval
rely on Enum
in order to
handle non-inclusive endpoints. For this reason, it may not be safe to
use Interval
s with non-inclusive endpoints on types whose Enum
instances have partial methods.
Instances
pattern Interval ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ LowerBound a → UpperBound a → Interval a Source #
ivFrom ∷ (ToData a, UnsafeFromData a) ⇒ Interval a → LowerBound a Source #
ivTo ∷ (ToData a, UnsafeFromData a) ⇒ Interval a → UpperBound a Source #
A set extended with a positive and negative infinity.
Instances
data UpperBound a Source #
The upper bound of an interval.
Instances
pattern UpperBound ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ Extended a → Closure → UpperBound a Source #
data LowerBound a Source #
The lower bound of an interval.
Instances
pattern LowerBound ∷ ∀ a. (ToData a, UnsafeFromData a) ⇒ Extended a → Closure → LowerBound a Source #
always ∷ (ToData a, UnsafeFromData a) ⇒ Interval a Source #
An Interval
that covers every slot. In math. notation [-∞,+∞]
from ∷ (ToData a, UnsafeFromData a) ⇒ a → Interval a Source #
from a
is an Interval
that includes all values that are
greater than or equal to a
. In math. notation: [a,+∞]
to ∷ (ToData a, UnsafeFromData a) ⇒ a → Interval a Source #
to a
is an Interval
that includes all values that are
smaller than or equal to a
. In math. notation: [-∞,a]
lowerBound ∷ (ToData a, UnsafeFromData a) ⇒ a → LowerBound a Source #
Construct a lower bound from a value. The resulting bound includes all values that are equal or greater than the input value.
upperBound ∷ (ToData a, UnsafeFromData a) ⇒ a → UpperBound a Source #
Construct an upper bound from a value. The resulting bound includes all values that are equal or smaller than the input value.
strictLowerBound ∷ (ToData a, UnsafeFromData a) ⇒ a → LowerBound a Source #
Construct a strict lower bound from a value. The resulting bound includes all values that are (strictly) greater than the input value.
strictUpperBound ∷ (ToData a, UnsafeFromData a) ⇒ a → UpperBound a Source #
Construct a strict upper bound from a value. The resulting bound includes all values that are (strictly) smaller than the input value.
Ratio
Represents an arbitrary-precision ratio.
The following two invariants are maintained:
- The denominator is greater than zero.
- The numerator and denominator are coprime.
Instances
ratio ∷ Integer → Integer → Maybe Rational Source #
Safely constructs a Rational
from a numerator and a denominator. Returns
Nothing
if given a zero denominator.
fromGHC ∷ Rational → Rational Source #
Converts a GHC Rational
, preserving value. Does not work on-chain.
Association maps
A map associating keys and values backed by BuiltinData
.
This implementation has the following characteristics:
- The
toBuiltinData
andunsafeFromBuiltinData
operations are no-op. - Other operations are slower than
PlutusTx.AssocMap.Map
, although equality checks on keys can be faster due toequalsData
. - Many operations involve converting the keys and/or values to/from
BuiltinData
.
Therefore this implementation is likely a better choice than PlutusTx.AssocMap.Map
if it is part of a data type defined using asData
, and the key and value types
have efficient toBuiltinData
and unsafeFromBuiltinData
operations (e.g., they
are primitive types or types defined using asData
).
A Map
is considered well-defined if it has no duplicate keys. Most operations
preserve the definedness of the resulting Map
unless otherwise noted.
It is important to observe that, in comparison to standard map implementations,
this implementation provides slow lookup and update operations because it is based
on a list representation.
Instances
Lift DefaultUni (Map k a) | |
Defined in PlutusTx.Data.AssocMap lift ∷ Map k a → RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) Source # | |
Show (Map k a) | |
FromData (Map k a) | |
Defined in PlutusTx.Data.AssocMap fromBuiltinData ∷ BuiltinData → Maybe (Map k a) Source # | |
ToData (Map k a) | |
Defined in PlutusTx.Data.AssocMap toBuiltinData ∷ Map k a → BuiltinData Source # | |
UnsafeFromData (Map k a) | |
Defined in PlutusTx.Data.AssocMap unsafeFromBuiltinData ∷ BuiltinData → Map k a Source # | |
(Pretty k, Pretty a, UnsafeFromData k, UnsafeFromData a) ⇒ Pretty (Map k a) | |
Typeable DefaultUni Map | |
Defined in PlutusTx.Data.AssocMap typeRep ∷ Proxy Map → RTCompile DefaultUni fun (Type TyName DefaultUni ()) Source # |
Newtypes and hash types
newtype ScriptHash Source #
Type representing the BLAKE2b-224 hash of a script. 28 bytes.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.
Instances
Redeemer
is a wrapper around Data
values that are used as redeemers in transaction inputs.
Instances
newtype RedeemerHash Source #
Type representing the BLAKE2b-256 hash of a redeemer. 32 bytes.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.
Instances
Datum
is a wrapper around Data
values which are used as data in transaction outputs.
Instances
Type representing the BLAKE2b-256 hash of a datum. 32 bytes.
This is a simple type without any validation, use with caution. You may want to add checks for its invariants. See the Shelley ledger specification.
Instances
Data
A generic "data" type.
The main constructor Constr
represents a datatype value in sum-of-products
form: Constr i args
represents a use of the i
th constructor along with its arguments.
The other constructors are various primitives.
Instances
data BuiltinData Source #
A type corresponding to the Plutus Core builtin equivalent of Data
.
The point of this type is to be an opaque equivalent of Data
, so as to
ensure that it is only used in ways that the compiler can handle.
As such, you should use this type in your on-chain code, and in any data structures that you want to be representable on-chain.
For off-chain usage, there are conversion functions builtinDataToData
and
dataToBuiltinData
, but note that these will not work on-chain.
Instances
A typeclass for types that can be converted to and from BuiltinData
.
toBuiltinData ∷ a → BuiltinData Source #
Convert a value to BuiltinData
.
Instances
class FromData a where Source #
fromBuiltinData ∷ BuiltinData → Maybe a Source #
Convert a value from BuiltinData
, returning Nothing
if this fails.
Instances
class UnsafeFromData a where Source #
unsafeFromBuiltinData ∷ BuiltinData → a Source #
Convert a value from BuiltinData
, calling error
if this fails.
This is typically much faster than fromBuiltinData
.
When implementing this function, make sure to call unsafeFromBuiltinData
rather than fromBuiltinData
when converting substructures!
This is a simple type without any validation, use with caution.
Instances
unsafeFromData ∷ UnsafeFromData a ⇒ Data → a Source #
Convert a value from Data
, throwing if this fails.
dataToBuiltinData ∷ Data → BuiltinData Source #
Convert a Data
into a BuiltinData
. Only works off-chain.
builtinDataToData ∷ BuiltinData → Data Source #
Convert a BuiltinData
into a Data
. Only works off-chain.
Errors
class Monad m ⇒ MonadError e (m ∷ Type → Type) | m → e Source #
The strategy of combining computations that can throw exceptions by bypassing bound functions from the point an exception is thrown to the point that it is handled.
Is parameterized over the type of error information and
the monad type constructor.
It is common to use
as the monad type constructor
for an error monad in which error descriptions take the form of strings.
In that case and many other common cases the resulting monad is already defined
as an instance of the Either
StringMonadError
class.
You can also define your own error type and/or use a monad type constructor
other than
or Either
String
.
In these cases you will have to explicitly define instances of the Either
IOError
MonadError
class.
(If you are using the deprecated Control.Monad.Error or
Control.Monad.Trans.Error, you may also have to define an Error
instance.)
Instances
data EvaluationError Source #
Errors that can be thrown when evaluating a Plutus script.
CekError !(CekEvaluationException NamedDeBruijn DefaultUni DefaultFun) | An error from the evaluator itself |
DeBruijnError !FreeVariableError | An error in the pre-evaluation step of converting from de-Bruijn indices |
CodecError !ScriptDecodeError | A deserialisation error TODO: make this error more informative when we have more information about what went wrong |
CostModelParameterMismatch | An error indicating that the cost model parameters didn't match what we expected |
InvalidReturnValue | The script evaluated to a value that is not a valid return value. |
Instances
data ScriptDecodeError Source #
An error that occurred during script deserialization.
CBORDeserialiseError !DeserialiseFailureInfo | an error from the underlying CBOR/serialise library |
RemainderError !ByteString | Script was successfully parsed, but more (runaway) bytes encountered after script's position |
LedgerLanguageNotAvailableError | the plutus version of the given script is not enabled yet |
| |
PlutusCoreLanguageNotAvailableError | |
|