Packages

case class SubstConstants[T <: SType](scriptBytes: Value[SByteArray], positions: Value[SIntArray], newValues: Value[SCollection[T]]) extends NotReadyValueByteArray with Product with Serializable

Transforms serialized bytes of ErgoTree with segregated constants by replacing constants at given positions with new values. This operation allow to use serialized scripts as pre-defined templates. The typical usage is "check that output box have proposition equal to given script bytes, where minerPk (constants(0)) is replaced with currentMinerPk". Each constant in original scriptBytes have SType serialized before actual data (see ConstantSerializer). During substitution each value from newValues is checked to be an instance of the corresponding type. This means, the constants during substitution cannot change their types.

scriptBytes

serialized ErgoTree with ConstantSegregationFlag set to 1.

positions

zero based indexes in ErgoTree.constants array which should be replaced with new values

newValues

new values to be injected into the corresponding positions in ErgoTree.constants array

returns

original scriptBytes array where only specified constants are replaced and all other bytes remain exactly the same

Linear Supertypes
Serializable, Serializable, NotReadyValueByteArray, NotReadyValue[SByteArray], Value[SByteArray], SigmaNode, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SubstConstants
  2. Serializable
  3. Serializable
  4. NotReadyValueByteArray
  5. NotReadyValue
  6. Value
  7. SigmaNode
  8. Product
  9. Equals
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SubstConstants(scriptBytes: Value[SByteArray], positions: Value[SIntArray], newValues: Value[SCollection[T]])

    scriptBytes

    serialized ErgoTree with ConstantSegregationFlag set to 1.

    positions

    zero based indexes in ErgoTree.constants array which should be replaced with new values

    newValues

    new values to be injected into the corresponding positions in ErgoTree.constants array

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. def companion: SubstConstants.type
    Definition Classes
    SubstConstantsValue
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. val newValues: Value[SCollection[T]]
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. def opCode: OpCode

    Unique id of the node class used in serialization of ErgoTree.

    Unique id of the node class used in serialization of ErgoTree.

    Definition Classes
    Value
  16. def opName: String
    Definition Classes
    Value
  17. val opType: SFunc

    Every value represents an operation and that operation can be associated with a function type, describing functional meaning of the operation, kind of operation signature.

    Every value represents an operation and that operation can be associated with a function type, describing functional meaning of the operation, kind of operation signature. Thus we can obtain global operation identifiers by combining Value.opName with Value.opType, so that if (v1.opName == v2.opName) && (v1.opType == v2.opType) then v1 and v2 are functionally point-wise equivalent. This in particular means that if two _different_ ops have the same opType they _should_ have different opNames. Thus defined op ids are used in a Cost Model - a table of all existing primitives coupled with performance parameters.

    Definition Classes
    SubstConstantsValue
  18. val positions: Value[SIntArray]
  19. val scriptBytes: Value[SByteArray]
  20. def sourceContext: Nullable[SourceContext]
    Definition Classes
    Value
  21. def sourceContext_=(srcCtx: Nullable[SourceContext]): Unit
    Definition Classes
    Value
  22. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  23. def tpe: SCollection[SByte.type]

    The type of the value represented by this node.

    The type of the value represented by this node. If the value is an operation it is the type of operation result.

    Definition Classes
    NotReadyValueByteArrayValue
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from NotReadyValueByteArray

Inherited from NotReadyValue[SByteArray]

Inherited from Value[SByteArray]

Inherited from SigmaNode

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped