Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data PlutusAutoLimitingFactor
- data PlutusBudgetFittingStrategy
- data PlutusBudgetSummary = PlutusBudgetSummary {
- budgetPerBlock :: !ExecutionUnits
- budgetPerTx :: !ExecutionUnits
- budgetPerTxInput :: !ExecutionUnits
- budgetStrategy :: !PlutusBudgetFittingStrategy
- budgetTarget :: !ExecutionUnits
- scriptId :: !FilePath
- scriptArgDatum :: !ScriptData
- scriptArgRedeemer :: !ScriptData
- loopCounter :: !Int
- loopLimitingFactors :: ![PlutusAutoLimitingFactor]
- budgetUsedPerTxInput :: !ExecutionUnits
- projectedBudgetUnusedPerBlock :: !ExecutionUnits
- projectedBudgetUnusedPerTx :: !ExecutionUnits
- projectedTxPerBlock :: !Int
- projectedLoopsPerBlock :: !Int
- projectedTxSize :: !(Maybe Int)
- strategyMessage :: !(Maybe String)
- plutusAutoBudgetMaxOut :: ProtocolParameters -> ScriptInAnyLang -> PlutusAutoBudget -> PlutusBudgetFittingStrategy -> Int -> Either TxGenError (PlutusAutoBudget, Int, [PlutusAutoLimitingFactor])
- plutusAutoScaleBlockfit :: ProtocolParameters -> FilePath -> ScriptInAnyLang -> PlutusAutoBudget -> PlutusBudgetFittingStrategy -> Int -> Either TxGenError (PlutusBudgetSummary, PlutusAutoBudget, ExecutionUnits)
- plutusBudgetSummary :: ProtocolParameters -> FilePath -> PlutusBudgetFittingStrategy -> (PlutusAutoBudget, Int, [PlutusAutoLimitingFactor]) -> ExecutionUnits -> Int -> PlutusBudgetSummary
- readScriptData :: FilePath -> IO (Either TxGenError HashableScriptData)
- scriptDataModifyNumber :: (Integer -> Integer) -> ScriptData -> ScriptData
Documentation
data PlutusAutoLimitingFactor Source #
Nothing references this type's name or uses its constructors outside this module.
Instances
ToJSON PlutusAutoLimitingFactor Source # | |
Defined in Cardano.TxGenerator.PlutusContext toJSON :: PlutusAutoLimitingFactor -> Value # toEncoding :: PlutusAutoLimitingFactor -> Encoding # toJSONList :: [PlutusAutoLimitingFactor] -> Value # toEncodingList :: [PlutusAutoLimitingFactor] -> Encoding # | |
Generic PlutusAutoLimitingFactor Source # | |
Defined in Cardano.TxGenerator.PlutusContext | |
Show PlutusAutoLimitingFactor Source # | |
Defined in Cardano.TxGenerator.PlutusContext | |
Eq PlutusAutoLimitingFactor Source # | |
Defined in Cardano.TxGenerator.PlutusContext | |
type Rep PlutusAutoLimitingFactor Source # | |
Defined in Cardano.TxGenerator.PlutusContext type Rep PlutusAutoLimitingFactor = D1 ('MetaData "PlutusAutoLimitingFactor" "Cardano.TxGenerator.PlutusContext" "tx-generator-2.11-inplace" 'False) (C1 ('MetaCons "ExceededMemoryLimit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExceededStepLimit" 'PrefixI 'False) (U1 :: Type -> Type)) |
data PlutusBudgetFittingStrategy Source #
This type specifies the end to which a script's loop counter is calibrated
TargetTxExpenditure | calibrate for maximum expenditure of per-tx-budget |
TargetBlockExpenditure (Maybe Double) | calibrate for maximum expenditure of per-block-budget, with a scaling factor of [1.0, 2.0] |
TargetTxsPerBlock Int | calibrate for stable tx count per block |
Instances
data PlutusBudgetSummary Source #
This collects information describing the budget. It's only
directly referenced in Cardano.Benchmarking.Script.Env to supply
accessors as the state in an ActionM
(RWST) monad and Cardano.Benchmarking.Script.Core where the only
field touched is projectedTxSize
.
Instances
plutusAutoBudgetMaxOut :: ProtocolParameters -> ScriptInAnyLang -> PlutusAutoBudget -> PlutusBudgetFittingStrategy -> Int -> Either TxGenError (PlutusAutoBudget, Int, [PlutusAutoLimitingFactor]) Source #
Use a binary search to find a loop counter that maxes out the available script execution units. plutusAutoBudgetMaxOut makes two assumptions about the loop / PlutusAuto script: 1. The redeemer passed in is a valid one, and encodes i.a. the loop's termination value when counting down. 2. In the redeemer's argument structure, this value is the first numerical value that's encountered during traversal.
plutusAutoScaleBlockfit :: ProtocolParameters -> FilePath -> ScriptInAnyLang -> PlutusAutoBudget -> PlutusBudgetFittingStrategy -> Int -> Either TxGenError (PlutusBudgetSummary, PlutusAutoBudget, ExecutionUnits) Source #
Can find the optimal scaling factor for block expenditure, by aiming at highest loop count per block iff TargetBlockExpenditure Nothing is given; will calibrate loop for any fully specified fitting strategy otherwise
plutusBudgetSummary :: ProtocolParameters -> FilePath -> PlutusBudgetFittingStrategy -> (PlutusAutoBudget, Int, [PlutusAutoLimitingFactor]) -> ExecutionUnits -> Int -> PlutusBudgetSummary Source #
Only used in plutusAutoScaleBlockfit
, this assembles a
PlutusBudgetSummary
from information about the how to budget.
Some of the function arguments share names with the record fields
mass imported with the Constr{..}
notation, setting the field
of the final result to that argument.
readScriptData :: FilePath -> IO (Either TxGenError HashableScriptData) Source #
Load serialized ScriptData, filling in an empty value if no .json file is given
scriptDataModifyNumber :: (Integer -> Integer) -> ScriptData -> ScriptData Source #
Modifies the first ScriptDataNumber encountered during traversal to the value provided
Orphan instances
ToJSON ScriptData Source # | |
toJSON :: ScriptData -> Value # toEncoding :: ScriptData -> Encoding # toJSONList :: [ScriptData] -> Value # toEncodingList :: [ScriptData] -> Encoding # omitField :: ScriptData -> Bool # |