Default implementation of AnyValue interface.
A default implementation of AvlTree interface.
A default implementation of AvlTree interface.
AvlTree for detailed descriptions
Implementation of the special.sigma.AvlTreeVerifier trait based on scorex.crypto.authds.avltree.batch.BatchAVLVerifier.
Implementation of the special.sigma.AvlTreeVerifier trait based on scorex.crypto.authds.avltree.batch.BatchAVLVerifier.
BatchAVLVerifier, AvlTreeVerifier
A default implementation of BigInt interface.
A default implementation of BigInt interface.
BigInt for detailed descriptions
A default implementation of GroupElement interface.
A default implementation of GroupElement interface.
GroupElement for detailed descriptions
A default implementation of Header interface.
A default implementation of Header interface.
Header for detailed descriptions
A default implementation of PreHeader interface.
A default implementation of PreHeader interface.
PreHeader for detailed descriptions
A default implementation of SigmaProp interface.
A default implementation of SigmaProp interface.
SigmaProp for detailed descriptions
IR context to be used by script development tools to compile ErgoScript into ErgoTree bytecode.
A default implementation of Box interface.
A default implementation of Box interface.
Box for detailed descriptions
A default implementation of Context interface.
A default implementation of Context interface.
Context for detailed descriptions
A default implementation of SigmaDslBuilder interface.
A default implementation of SigmaDslBuilder interface.
SigmaDslBuilder for detailed descriptions
Perform translation of typed expression given by Value to a graph in IRContext.
Perform translation of typed expression given by Value to a graph in IRContext. Which be than be translated to ErgoTree by using TreeBuilding.
Common Sub-expression Elimination (CSE) optimization is performed which reduces serialized size of the resulting ErgoTree. CSE however means the original structure of source code may not be preserved in the resulting ErgoTree.
Main interface of graph IR context which contain both GraphBuilding and TreeBuilding methods.
Main interface of graph IR context which contain both GraphBuilding and TreeBuilding methods. It is not used in v5.0 interpreter and thus not part of consensus.
RuntimeIRContext, CompiletimeIRContext
A simple profiler to measure average execution times of ErgoTree operations.
IR context to be used by blockchain nodes to validate transactions.
Collects profiler measured data points associated with keys.
Collects profiler measured data points associated with keys. Group points by key into StatHolders.
type of the mapping key
type of the measured numeric value
Holds a series of profile measurements associated with a key.
Holds a series of profile measurements associated with a key. Allows to compute simple statistic data.
type of the measured numeric value
Implementation of IR-graph to ErgoTree expression translation.
Implementation of IR-graph to ErgoTree expression translation. This, in a sense, is inverse to GraphBuilding, however roundtrip identity is not possible, because one of the goals of Tree -> Graph -> Tree translation is to perform size optimization of the resulting tree.
The main optimizations that are achieved by Tree -> Graph -> Tree process: 1) Common Subexpression Elimination which is done in GraphBuilding 2) ValDef introduction minimization, which is done in TreeBuilding. The ValDef is introduced only for graph nodes (i.e. subcomputations) that have more than 1 usage.
buildTree method
Interface implmented by wrappers to provide access to the underlying wrapped value.
This class represents context variable and register value of a functional type A => B.
This class represents context variable and register value of a functional type A => B.
When variable or register is accessed using getVar[A => B](id).get
or
box.getReg[A => B].get an instance of this class is returned.
It internally transforms a given tree
into executable function.
This it similar to what happens during validation of propositions in the input boxes:
- size check of underlying ErgoTree against limits
- construction of calcF
and costF
graphs, both are stored together with resulting function.
- check the types of calcF
graph to be compatible with expected types A and B
If anything goes wrong, this operation fails and if it is used in the script, the script also fails.
When f is obtained as val f = getVar[Int => Int](id).get
then any application f(x)
involves size estimation
using underlying costF(x)
.
The primary reference to global Coll operations.
The primary reference to global Coll operations. Can be used to create collections from Array etc.
CollBuilder
Default singleton instance of Global object, which implements global ErgoTree functions.
Helper methods used as part of ErgoTree evaluation.
The primary reference to Global instance of SigmaDsl.
The primary reference to Global instance of SigmaDsl.
Besides operations of SigmaDslBuilder class, this instance also contains methods,
which are not available in Dsl code, and which are not in SigmaDslBuilder interface.
For example methods like Box
, toErgoBox
are available here, but not available in Dsl.
SigmaDslBuilder
Constructor of tuple value with more than 2 items.
Constructor of tuple value with more than 2 items. Such long tuples are represented as Coll[Any]. This representaion of tuples is different from representation of pairs (x, y), where Tuple2 type is used instead of Coll.
Implicit conversions between Dsl type and the type wrapped by the corresponding type Dsl type.
Implicit conversions between Dsl type and the type wrapped by the corresponding type Dsl type. Here BigInt is Dsl type and BigInteger is wrapped type.
special.sigma.CBigInt