sealed class CompositeKey
A tree data structure that enables the representation of composite public keys.
In the simplest case it may just contain a single node encapsulating a PublicKey – a Leaf.
For more complex scenarios, such as
Using these constructs we can express e.g. 1 of N (OR) or N of N (AND) signature requirements. By nesting we can
create multi-level requirements such as
Builder |
class Builder A helper class for building a CompositeKey.Node. |
Leaf |
class Leaf : CompositeKey The leaf node of the tree – a wrapper around a PublicKey primitive |
Node |
class Node : CompositeKey Represents a node in the key tree. It maintains a list of child nodes – sub-trees, and associated weights carried by child node signatures. |
keys |
abstract val keys: Set<PublicKey> Returns all PublicKeys contained within the tree leaves |
singleKey |
val singleKey: PublicKey Returns the enclosed PublicKey for a CompositeKey with a single leaf node |
containsAny |
fun containsAny(otherKeys: Iterable<PublicKey>): <ERROR CLASS> Checks whether any of the given keys matches a leaf on the tree |
isFulfilledBy |
abstract fun isFulfilledBy(keys: Iterable<PublicKey>): Boolean Checks whether keys match a sufficient amount of leaf nodes fun isFulfilledBy(key: PublicKey): <ERROR CLASS> |
toBase58String |
fun toBase58String(): String This is generated by serializing the composite key with Kryo, and encoding the resulting bytes in base58. A custom serialization format is being used. |
parseFromBase58 |
fun parseFromBase58(encoded: String): <ERROR CLASS> |
Leaf |
class Leaf : CompositeKey The leaf node of the tree – a wrapper around a PublicKey primitive |
Node |
class Node : CompositeKey Represents a node in the key tree. It maintains a list of child nodes – sub-trees, and associated weights carried by child node signatures. |