Size of data block in bytes.
Size of data block in bytes. Used in JIT cost calculations.
Default global EvalSettings instance.
A profiler which is used by default if EvalSettings.isMeasureOperationTime is enabled.
Empty data environment.
Evaluate the given expression in the given Ergo context using the given settings.
Evaluate the given expression in the given Ergo context using the given settings. The given Value is evaluated as-is and is not changed during evaluation.
special.sigma.Context instance used for script execution
CostAccumulator instance used for accumulating costs
collection of segregated constants which can be refered by
ConstantPlaceholders in exp
ErgoTree expression represented as sigmastate.Values.Value
evaluation settings
1) the result of evaluating exp
in a given context and
2) an accumulated JIT cost estimation.
Evaluate the given expression in the given Ergo context using the given settings.
Evaluate the given expression in the given Ergo context using the given settings. The given Value is evaluated as-is and is not changed during evaluation.
ErgoLikeContext used for script execution
collection of segregated constants which can be refered by
ConstantPlaceholders in exp
ErgoTree expression represented as Value
evaluation settings
1) the result of evaluating exp
in a given context and
2) an accumulated JIT cost estimation.
Evaluate the given ErgoTree in the given Ergo context using the given settings.
Evaluate the given ErgoTree in the given Ergo context using the given settings. The given ErgoTree is evaluated as-is and is not changed during evaluation.
ErgoLikeContext used for script execution
script represented as ErgoTree
evaluation settings
a sigma protocol proposition (as SigmaBoolean) and accumulated JIT cost estimation.
Executes FixedCost code block
and use the given evaluator E
to perform
profiling and cost tracing.
Executes FixedCost code block
and use the given evaluator E
to perform
profiling and cost tracing.
This helper method allows implementation of cost-aware code blocks by using
thread-local instance of ErgoTreeEvaluator.
If the currentEvaluator
DynamicVariable is not initialized (equals to null),
then the block is executed with minimal overhead.
operation descriptor
block of code to be executed (given as lazy by-name argument)
evaluator to be used (or null if it is not available on the
current thread), in which case the method is equal to the
block
execution.
result of code block execution
HOTSPOT: don't beautify the code
Note, null
is used instead of Option to avoid allocations.
Creates a new ErgoTreeEvaluator instance with the given profiler and settings.
Creates a new ErgoTreeEvaluator instance with the given profiler and settings.
The returned evaluator can be used to initialize the currentEvaluator
variable.
As a result, cost-aware operations (code blocks) can be implemented, even when those
operations don't involve ErgoTree evaluation.
As an example, see methods in sigmastate.SigSerializer and
sigmastate.FiatShamirTree where cost-aware code blocks are used.
Returns a current evaluator for the current thread.
Executes PerItemCost code block
and use the given evaluator E
to perform
profiling and cost tracing.
Executes PerItemCost code block
and use the given evaluator E
to perform
profiling and cost tracing.
This helper method allows implementation of cost-aware code blocks by using
thread-local instance of ErgoTreeEvaluator.
If the currentEvaluator
DynamicVariable is not initialized (equals to null),
then the block is executed with minimal overhead.
operation descriptor
number of data items in the operation
block of code to be executed (given as lazy by-name argument)
evaluator to be used (or null if it is not available on the
current thread), in which case the method is equal to the
block
execution.
result of code block execution
HOTSPOT: don't beautify the code
Note, null
is used instead of Option to avoid allocations.