Trait

special.sigma

AvlTree

Related Doc: package sigma

Permalink

trait AvlTree extends AnyRef

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, thus digest size is always CryptoConstants.hashLength + 1 bytes.

This interface is used as runtime representation of the AvlTree type of ErgoTree.

Annotations
@Liftable()
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AvlTree
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def contains(key: Coll[Byte], proof: Coll[Byte]): Boolean

    Permalink

    Checks if an entry with key key exists in this tree using proof proof.

    Checks if an entry with key key exists in this tree using proof proof. Throws exception if proof is incorrect

    key

    a key of an element of this authenticated dictionary.

    Note

    CAUTION! Does not support multiple keys check, use getMany instead. Return true if a leaf with the key key exists Return false if leaf with provided key does not exist.

  2. abstract def digest: Coll[Byte]

    Permalink

    Returns digest of the state represented by this tree.

    Returns digest of the state represented by this tree. Authenticated tree digest = root hash bytes ++ tree height

    Since

    2.0

  3. abstract def enabledOperations: Byte

    Permalink

    Flags of enabled operations packed in single byte.

    Flags of enabled operations packed in single byte. isInsertAllowed == (enabledOperations & 0x01) != 0 isUpdateAllowed == (enabledOperations & 0x02) != 0 isRemoveAllowed == (enabledOperations & 0x04) != 0

  4. abstract def get(key: Coll[Byte], proof: Coll[Byte]): Option[Coll[Byte]]

    Permalink

    Perform a lookup of key key in this tree using proof proof.

    Perform a lookup of key key in this tree using proof proof. Throws exception if proof is incorrect

    key

    a key of an element of this authenticated dictionary.

    Note

    CAUTION! Does not support multiple keys check, use getMany instead. Return Some(bytes) of leaf with key key if it exists Return None if leaf with provided key does not exist.

  5. abstract def getMany(keys: Coll[Coll[Byte]], proof: Coll[Byte]): Coll[Option[Coll[Byte]]]

    Permalink

    Perform a lookup of many keys keys in this tree using proof proof.

    Perform a lookup of many keys keys in this tree using proof proof.

    keys

    keys of elements of this authenticated dictionary.

    Note

    CAUTION! Keys must be ordered the same way they were in lookup before proof was generated. For each key return Some(bytes) of leaf if it exists and None if is doesn't.

  6. abstract def insert(operations: Coll[(Coll[Byte], Coll[Byte])], proof: Coll[Byte]): Option[AvlTree]

    Permalink

    Perform insertions of key-value entries into this tree using proof proof.

    Perform insertions of key-value entries into this tree using proof proof. Throws exception if proof is incorrect

    operations

    collection of key-value pairs to insert in this authenticated dictionary.

    Note

    CAUTION! Pairs must be ordered the same way they were in insert ops before proof was generated. Return Some(newTree) if successful Return None if operations were not performed.

  7. abstract def isInsertAllowed: Boolean

    Permalink

    Checks if Insert operation is allowed for this tree instance.

  8. abstract def isRemoveAllowed: Boolean

    Permalink

    Checks if Remove operation is allowed for this tree instance.

  9. abstract def isUpdateAllowed: Boolean

    Permalink

    Checks if Update operation is allowed for this tree instance.

  10. abstract def keyLength: Int

    Permalink

    All the elements under the tree have the same length of the keys

  11. abstract def remove(operations: Coll[Coll[Byte]], proof: Coll[Byte]): Option[AvlTree]

    Permalink

    Perform removal of entries into this tree using proof proof.

    Perform removal of entries into this tree using proof proof. Throws exception if proof is incorrect Return Some(newTree) if successful Return None if operations were not performed.

    operations

    collection of keys to remove from this authenticated dictionary.

    Note

    CAUTION! Keys must be ordered the same way they were in remove ops before proof was generated.

  12. abstract def update(operations: Coll[(Coll[Byte], Coll[Byte])], proof: Coll[Byte]): Option[AvlTree]

    Permalink

    Perform updates of key-value entries into this tree using proof proof.

    Perform updates of key-value entries into this tree using proof proof. Throws exception if proof is incorrect

    operations

    collection of key-value pairs to update in this authenticated dictionary.

    Note

    CAUTION! Pairs must be ordered the same way they were in update ops before proof was generated. Return Some(newTree) if successful Return None if operations were not performed.

  13. abstract def updateDigest(newDigest: Coll[Byte]): AvlTree

    Permalink

    Replace digest of this tree producing a new tree.

    Replace digest of this tree producing a new tree. Since AvlTree is immutable, this tree instance remains unchanged.

    newDigest

    a new digest

    returns

    a copy of this AvlTree instance where this.digest replaced by newDigest

  14. abstract def updateOperations(newOperations: Byte): AvlTree

    Permalink

    Enable/disable operations of this tree producing a new tree.

    Enable/disable operations of this tree producing a new tree. Since AvlTree is immutable, this tree instance remains unchanged.

    newOperations

    a new flags which specify available operations on a new tree.

    returns

    a copy of this AvlTree instance where this.enabledOperations replaced by newOperations

  15. abstract def valueLengthOpt: Option[Int]

    Permalink

    If non-empty, all the values under the tree are of the same length.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  9. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  13. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  14. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  15. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped