abstract class ErgoTreeEvaluator extends AnyRef
- Alphabetic
- By Inheritance
- ErgoTreeEvaluator
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ErgoTreeEvaluator()
Abstract Value Members
- abstract def addCost(costInfo: OperationCostInfo[FixedCost]): Unit
- abstract def addCost(costKind: FixedCost, opDesc: OperationDesc): Unit
Adds the given cost to the
coster
.Adds the given cost to the
coster
. If tracing is enabled, associates the cost with the given operation.- costKind
kind of the cost to be added to
coster
- opDesc
operation descriptor to associate the cost with (when costTracingEnabled)
- abstract def addFixedCost(costInfo: OperationCostInfo[FixedCost])(block: => Unit): Unit
- abstract def addFixedCost(costKind: FixedCost, opDesc: OperationDesc)(block: => Unit): Unit
Adds the given cost to the
coster
.Adds the given cost to the
coster
. If tracing is enabled, associates the cost with the given operation.- costKind
kind of the cost to be added to
coster
- opDesc
the operation descriptor to associate the cost with (when costTracingEnabled)
- block
operation executed under the given cost
- abstract def addSeqCost(costInfo: OperationCostInfo[PerItemCost])(block: () => Int): Unit
Adds the cost to the
coster
.Adds the cost to the
coster
. See the other overload for details. - abstract def addSeqCost(costKind: PerItemCost, opDesc: OperationDesc)(block: () => Int): Unit
Adds the cost to the
coster
.Adds the cost to the
coster
. If tracing is enabled, creates a new cost item with the given operation descriptor and cost kind. If time measuring is enabled also performs profiling.WARNING: The cost is accumulated AFTER the block is executed. Each usage of this method should be accompanied with a proof of why this cannot lead to unbounded execution (see all usages).
- costKind
the cost descriptor to be used to compute the cost based on the actual number of items returned by the
block
- opDesc
the operation to associate the cost with (when costTracingEnabled)
- block
operation executed under the given cost descriptors, returns the actual number of items processed
- abstract def addSeqCost[R](costInfo: OperationCostInfo[PerItemCost], nItems: Int)(block: () => R): R
Adds the cost to the
coster
.Adds the cost to the
coster
. See the other overload for details. - abstract def addSeqCost[R](costKind: PerItemCost, nItems: Int, opDesc: OperationDesc)(block: () => R): R
Adds the given cost to the
coster
.Adds the given cost to the
coster
. If tracing is enabled, creates a new cost item with the given operation.- R
result type of the operation
- costKind
the cost to be added to
coster
for each item- nItems
the number of items
- opDesc
the operation to associate the cost with (when costTracingEnabled)
- block
operation executed under the given cost
- abstract def addSeqCostNoOp(costKind: PerItemCost, nItems: Int, opDesc: OperationDesc): Unit
Adds the given cost to the
coster
.Adds the given cost to the
coster
. If tracing is enabled, creates a new cost item with the given operation.- costKind
the cost to be added to
coster
for each item- nItems
the number of items
- opDesc
the operation to associate the cost with (when costTracingEnabled)
- abstract def addTypeBasedCost[R](costKind: TypeBasedCost, tpe: SType, opDesc: OperationDesc)(block: () => R): R
Add the cost given by the cost descriptor and the type to the accumulator and associate it with this operation descriptor.
Add the cost given by the cost descriptor and the type to the accumulator and associate it with this operation descriptor.
- costKind
descriptor of the cost
- tpe
specific type for which the cost should be computed by this descriptor (see costFunc method)
- opDesc
operation which is associated with this cost
- abstract def constants: Seq[Constant[SType]]
Segregated constants from ErgoTree, to lookup them from ConstantPlaceholder evaluation.
- abstract def contains_eval(mc: MethodCall, tree: AvlTree, key: Coll[Byte], proof: Coll[Byte]): Boolean
Implements evaluation of AvlTree.contains method call ErgoTree node.
- abstract def context: Context
Represents blockchain data context for ErgoTree evaluation.
- abstract def createTreeVerifier(tree: AvlTree, proof: Coll[Byte]): AvlTreeVerifier
Create an instance of AvlTreeVerifier for the given tree and proof.
- abstract def getMany_eval(mc: MethodCall, tree: AvlTree, keys: Coll[Coll[Byte]], proof: Coll[Byte]): Coll[Option[Coll[Byte]]]
Implements evaluation of AvlTree.getMany method call ErgoTree node.
- abstract def get_eval(mc: MethodCall, tree: AvlTree, key: Coll[Byte], proof: Coll[Byte]): Option[Coll[Byte]]
Implements evaluation of AvlTree.get method call ErgoTree node.
- abstract def insert_eval(mc: MethodCall, tree: AvlTree, entries: KeyValueColl, proof: Coll[Byte]): Option[AvlTree]
Implements evaluation of AvlTree.insert method call ErgoTree node.
- abstract def profiler: Profiler
Performs operations profiling and time measurements (if enabled in settings).
- abstract def remove_eval(mc: MethodCall, tree: AvlTree, operations: Coll[Coll[Byte]], proof: Coll[Byte]): Option[AvlTree]
Implements evaluation of AvlTree.remove method call ErgoTree node.
- abstract def settings: EvalSettings
Settings to be used during evaluation.
- abstract def update_eval(mc: MethodCall, tree: AvlTree, operations: KeyValueColl, proof: Coll[Byte]): Option[AvlTree]
Implements evaluation of AvlTree.update method call ErgoTree node.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()