object Terms

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Terms
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Apply(func: Value[SType], args: IndexedSeq[Value[SType]]) extends Value[SType] with Product with Serializable
  2. case class ApplyTypes(input: Value[SType], tpeArgs: Seq[SType]) extends Value[SType] with Product with Serializable

    Apply types for type parameters of input value.

  3. case class Block(bindings: Seq[Val], result: SValue) extends Value[SType] with Product with Serializable

    Frontend representation of a block of Val definitions.

    Frontend representation of a block of Val definitions. { val x = ...; val y = ... } This node is not part of ErgoTree and hence have Undefined opCode.

  4. case class Ident(name: String, tpe: SType = NoType) extends Value[SType] with Product with Serializable

    Frontend node to represent variable names parsed in a source code.

    Frontend node to represent variable names parsed in a source code. Should be resolved during compilation to lambda argument, Val definition or compilation environment value.

  5. case class Lambda(tpeParams: Seq[STypeParam], args: IndexedSeq[(String, SType)], givenResType: SType, body: Option[Value[SType]]) extends Value[SFunc] with Product with Serializable

    Frontend implementation of lambdas.

    Frontend implementation of lambdas. Should be transformed to FuncValue.

  6. case class MethodCall(obj: Value[SType], method: SMethod, args: IndexedSeq[Value[SType]], typeSubst: Map[STypeVar, SType]) extends Value[SType] with Product with Serializable

    Represents in ErgoTree an invocation of method of the object obj with arguments args.

    Represents in ErgoTree an invocation of method of the object obj with arguments args. The SMethod instances in STypeCompanions may have type STypeIdent in methods types, but valid ErgoTree should have SMethod instances specialized for specific types of obj and args using specializeFor. This means, if we save typeId, mathodId, and we save all the arguments, we can restore the specialized SMethod instance. This work by induction, if we assume all arguments are monomorphic, then we can make MethodCall monomorphic. Thus, all ErgoTree instances are monomorphic by construction.

    obj

    object on which method will be invoked

    method

    method to be invoked

    args

    arguments passed to the method on invocation

    typeSubst

    a map of concrete type for each generic type parameter

  7. case class MethodCallLike(obj: Value[SType], name: String, args: IndexedSeq[Value[SType]], tpe: SType = NoType) extends Value[SType] with Product with Serializable

    Frontend node to represent potential method call in a source code.

    Frontend node to represent potential method call in a source code. Should be resolved during compilation to MethodCall. Cannot be serialized to ErgoTree.

  8. case class OperationId(name: String, opType: SFunc) extends Product with Serializable
  9. case class STypeParam(ident: STypeVar, upperBound: Option[SType] = None, lowerBound: Option[SType] = None) extends Product with Serializable
  10. case class Select(obj: Value[SType], field: String, resType: Option[SType] = None) extends Value[SType] with Product with Serializable

    Frontend node to select a field from an object.

    Frontend node to select a field from an object. Should be transformed to SelectField

  11. trait Val extends Value[SType]
  12. case class ValNode(name: String, givenType: SType, body: SValue) extends Val with Product with Serializable
  13. implicit final class ValueOps extends AnyVal
  14. case class ZKProofBlock(body: SigmaPropValue) extends BoolValue with Product with Serializable

    IR node to represent explicit Zero Knowledge scope in ErgoTree.

    IR node to represent explicit Zero Knowledge scope in ErgoTree. Compiler checks Zero Knowledge properties and issue error message is case of violations. ZK-scoping is optional, it can be used when the user want to ensure Zero Knowledge of specific set of operations. Usually it will require simple restructuring of the code to make the scope body explicit. Invariants checked by the compiler:

    • single ZKProof in ErgoTree in a root position
    • no boolean operations in the body, because otherwise the result may be disclosed
    • all the operations are over SigmaProp values

    For motivation and details see https://github.com/ScorexFoundation/sigmastate-interpreter/issues/236

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. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  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. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  20. object Apply extends ValueCompanion with Serializable
  21. object ApplyTypes extends ValueCompanion with Serializable
  22. object Block extends ValueCompanion with Serializable
  23. object Ident extends ValueCompanion with Serializable
  24. object Lambda extends ValueCompanion with Serializable
  25. object MethodCall extends ValueCompanion with Serializable
  26. object MethodCallLike extends ValueCompanion with Serializable
  27. object PropertyCall extends ValueCompanion
  28. object STypeParam extends Serializable
  29. object Select extends ValueCompanion with Serializable
  30. object Val
  31. object ValNode extends ValueCompanion with Serializable
  32. object ZKProofBlock extends ValueCompanion with Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped