module arch.system.state.resource_machine.primitive_interfaces.index ;
Primitive interfaces
This section defines the hierarchy of primitives used in resource machine design and describes interfaces for each primitive.
The diagram below illustrates the primitive types required for resource machine. Red nodes correspond to primitive interfaces, green nodes correspond to instantiations of the interfaces. Each primitive instantiation has an associated type, e.g. delta hash instantiation of Hash
interface has an associated type DeltaHash
. Primitive instantiations' names are derived from the type name but written in lower camel case, e.g., for DeltaHash
the corresponding function would be deltaHash(..)
.
flowchart LR
ProvingSystem
Set --> OrderedSet
Map --> MapInstance
CommitmentAccumulator --> CommitmentAccumulatorInstance
NullifierSet --> NullifierSetInstance
OrderedSet --> OrderedSetInstance
Set --> SetInstance
style SetInstance fill:transparent
style OrderedSetInstance fill:transparent
style MapInstance fill:transparent
style CommitmentAccumulatorInstance fill:transparent
style NullifierSetInstance fill:transparent
ProvingSystem --> ComplianceProvingSystem
ProvingSystem --> ResourceLogicProvingSystem
ProvingSystem --> IDeltaProvingSystem
IDeltaProvingSystem --> DeltaProvingSystem
style ComplianceProvingSystem fill:transparent
style ResourceLogicProvingSystem fill:transparent
style DeltaProvingSystem fill:transparent
Primitive interfaces
flowchart LR
FixedSize --> Arithmetic
FixedSize --> Hash
FixedSize --> Nonce
FixedSize --> RandSeed
FixedSize --> NullifierKeyCommitment
FixedSize --> NullifierKey
style Nonce fill:transparent
style RandSeed fill:transparent
style NullifierKey fill:transparent
style NullifierKeyCommitment fill:transparent
Arithmetic --> Quantity
Arithmetic --> Balance
Arithmetic --> DeltaHash
style Quantity fill:transparent
style Balance fill:transparent
style DeltaHash fill:transparent
Hash --> LogicHash
Hash --> LabelHash
Hash --> ValueHash
Hash --> DeltaHash
Hash --> Commitment
Hash --> Nullifier
Hash --> Kind
Hash --> LogicRefHash
Hash --> MerkleTreeNodeHash
style LogicHash fill:transparent
style LabelHash fill:transparent
style ValueHash fill:transparent
style DeltaHash fill:transparent
style Commitment fill:transparent
style Nullifier fill:transparent
style Kind fill:transparent
style LogicRefHash fill:transparent
style MerkleTreeNodeHash fill:transparent
Hash --> AppDataValueHash
style AppDataValueHash fill:transparent
Primitive types