sigma
package sigma
The following implicit values are used as type descriptors of all the predefined Sigma types.
- See also
RType class
- Alphabetic
- By Inheritance
- sigma
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package ast
- package crypto
- package data
Contains cores definitions which serves as a basis for sigma package implementations.
- package eval
- package exceptions
- package impl
- package interpreter
- package kiama
Kiama is a Scala library for language processing.
Kiama is a Scala library for language processing. It is a project of the Programming Languages Research Group at Macquarie University. For full project details see the web site
http://github.com/inkytonik/kiama
.Kiama's main components address tree decoration via attribute grammars (package
attribution
), tree transformation via strategic term rewriting (packagerewriting
), dynamic semantics (packagemachine
) and pretty-printing (packageoutput
).The
util
package contains support modules for parsing, input/output, read-eval-print loops (REPLs) and pattern matching.The
examples
package (available as part of the Kiama tests) contains many examples of using Kiama to solve small to medium language processing problems. - package reflection
Contains the Sigma Reflection API.
Contains the Sigma Reflection API. Sigma reflection is a mechanism for obtaining metadata about classes, methods, fields, etc. at runtime. It is used by kiama to rewrite ErgoTree expressions. It is also used by the ErgoTree interpreter to implement MethodCall nodes.
The Sigma Reflection API has two implementations: 1) based on the Java Reflection API 2) based on Sigma Reflection metadata declared in the StaticImpl.scala file
- package serialization
- package util
- package utils
- package validation
- package wrappers
Type Members
- trait AnyValue extends AnyRef
Represents any value paired with type descriptor.
- trait AvlTree extends AnyRef
Type of data which efficiently authenticates potentially huge dataset having key-value dictionary interface.
Type of data which efficiently authenticates potentially huge dataset having key-value dictionary interface. Only root hash of dynamic AVL+ tree, tree height, key length, optional value length, and access flags are stored in an instance of the datatype.
Please note that standard hash function from
scorex.crypto.hash
is used, and height is stored along with root hash of the tree, thusdigest
size is always CryptoConstants.hashLength + 1 bytes.This interface is used as runtime representation of the AvlTree type of ErgoTree.
- trait BigInt extends AnyRef
All
modQ
operations assume that Q is a global constant (an order of the only one cryptographically strong group which is used for all cryptographic operations).All
modQ
operations assume that Q is a global constant (an order of the only one cryptographically strong group which is used for all cryptographic operations). So it is globally and implicitly used in all methods. - trait Box extends AnyRef
Runtime representation of Ergo boxes used during execution of ErgoTree operations.
Runtime representation of Ergo boxes used during execution of ErgoTree operations.
- See also
- trait Coll[A] extends AnyRef
Indexed (zero-based) collection of elements of type
A
.Indexed (zero-based) collection of elements of type
A
. NOTE: declaring itabstract class
makes some performance benefits, but doesn't work well with specialization. - trait CollBuilder extends AnyRef
Interface to access global collection methods.
Interface to access global collection methods. See default implementation in CollOverArrayBuilder.
- trait Colls extends Base
Staged version of collection interfaces which is used in graph-based IR to represent methods of Coll and CollBuilder.
Staged version of collection interfaces which is used in graph-based IR to represent methods of Coll and CollBuilder. Each method of Coll and CollBuilder in Colls corresponds to a method of the original non-staged class sigma.Coll and sigma.CollBuilder. The semantics of each method is the same as in the original class, please look there for details.
- trait CollsModule extends Scalan with CollsDefs
- trait Context extends AnyRef
Runtime representation of Context ErgoTree type.
Runtime representation of Context ErgoTree type. Represents data available in Sigma language using
CONTEXT
global variable. - sealed abstract class Environment extends AnyRef
Describes the current execution environment.
- trait GroupElement extends AnyRef
Base class for points on elliptic curves.
- trait Header extends AnyRef
Represents data of the block header available in Sigma propositions.
- trait PairColl[L, R] extends Coll[(L, R)]
Base trait for specialized (Structure-Of-Arrays) representation of collection of pairs (i.e.
Base trait for specialized (Structure-Of-Arrays) representation of collection of pairs (i.e.
Coll[(A, B)]
). Some instances ofColl[(A, B)]
may be instances of this trait, but it is NOT guaranteed, since some of them may be instances ofCollOverArray[(A, B)]
. - trait PreHeader extends AnyRef
Only header fields that can be predicted by a miner.
- sealed trait RuntimePlatform extends AnyRef
Descriptor of a runtime platform.
Descriptor of a runtime platform. Can be used to conditionally execute code.
- trait SigmaContract extends AnyRef
Shortcut declarations for methods of global object (aka SigmaDslBuilder).
Shortcut declarations for methods of global object (aka SigmaDslBuilder). Every methods delegates to the corresponding method of
builder
, look there for details. - trait SigmaDsl extends Base
- trait SigmaDslBuilder extends AnyRef
Runtime representation of SGlobal ErgoTree type.
Runtime representation of SGlobal ErgoTree type. The only instance of SGlobal type can be referenced as
Global
variable in ErgoScript. It is represented as org.ergoplatform.Global node of ErgoTree, which evaluates to the default singleton instance of this interface.CostingSigmaDslBuilder object serves as the default singleton instance of Global object, which implements global ErgoTree functions.
- See also
SGlobal.WrappedType, CostingSigmaDslBuilder
- trait SigmaDslModule extends Scalan with SigmaDslDefs
- class SigmaException extends Exception
Base class for Sigma-related exceptions.
- trait SigmaProp extends AnyRef
Proposition which can be proven and verified by sigma protocol.
- type TupleData = Coll[Any]
Generic representation of tuples values.
- case class VersionContext(activatedVersion: Byte, ergoTreeVersion: Byte) extends Product with Serializable
Represent currently activated protocol version and currently executed ErgoTree version.
Represent currently activated protocol version and currently executed ErgoTree version.
This parameters, once set in DynamicVariable can be accessed everywhere on the current thread.
- activatedVersion
Currently activated script version == Block.headerVersion - 1
- ergoTreeVersion
version of the currently executed ErgoTree
Value Members
- val AnyType: RType[Any]
- implicit val AnyValueRType: RType[AnyValue]
- implicit val AvlTreeRType: RType[AvlTree]
- implicit val BigIntRType: RType[BigInt]
- implicit val BooleanType: RType[Boolean]
- implicit val BoxRType: RType[Box]
- implicit val ByteType: RType[Byte]
- val Colls: CollBuilder
The primary reference to global Coll operations.
The primary reference to global Coll operations. Can be used to create collections from Array etc.
- See also
CollBuilder
- implicit val ContextRType: RType[Context]
- implicit val GroupElementRType: RType[GroupElement]
- implicit val HeaderRType: RType[Header]
- implicit val IntType: RType[Int]
- implicit val LongType: RType[Long]
- implicit val PreHeaderRType: RType[PreHeader]
- implicit val ShortType: RType[Short]
- implicit val SigmaBooleanRType: RType[SigmaBoolean]
- implicit val SigmaDslBuilderRType: RType[SigmaDslBuilder]
- implicit val SigmaPropRType: RType[SigmaProp]
- implicit val StringType: RType[String]
- implicit val UnitType: RType[Unit]
- implicit val collBuilderRType: RType[CollBuilder]
- implicit def collRType[A](implicit tA: RType[A]): RType[Coll[A]]
Implicit resolution of
Coll[A]
type descriptor, given a descriptor ofA
. - def requireSameLength[A, B](xs: Coll[A], ys: Coll[B]): Unit
- implicit def rtypeToClassTag[A](implicit t: RType[A]): ClassTag[A]
Allows implicit resolution to find appropriate instance of ClassTag in the scope where RType is implicitly available.
Allows implicit resolution to find appropriate instance of ClassTag in the scope where RType is implicitly available. NOTE, this implicit is shadowed internally in some places (search for
def rtypeToClassTag
), hence renaming it requires changing of the shadowing methods. - def tupleRType(types: Array[SomeType]): RType[TupleData]
Returns an RType object representing a tuple type with the given SomeType array types.
Returns an RType object representing a tuple type with the given SomeType array types.
- types
An array of SomeType representing the types of each item in the tuple.
- returns
An RType object for the tuple type.
- object Environment
- object Evaluation
Helper methods used as part of ErgoTree evaluation.
- object Extensions
Declaration of extension methods introduced in
sigma-core
module.Declaration of extension methods introduced in
sigma-core
module. Seeimplicit class ...
wrappers below. - object Platform
JVM specific implementations
- object RuntimePlatform
- object SigmaDataReflection
Reflection metadata for
interpreter
module.Reflection metadata for
interpreter
module. Such metadata is only used on JS platform to support reflection-like interfaces of RClass, RMethod, RConstructor. These interfaces implemented on JVM using Java reflection.For each class of this module that needs reflection metadata, we register a class entry with the necessary information. Only information that is needed at runtime is registered.
- object VersionContext extends Serializable