Juvix imports
module arch.system.types.state;
import prelude open;
import arch.system.types.nullifier open;
import arch.system.types.commitmenttree open;
State
Auxiliary Juvix code
axiom CommitmentAccumulator : Type;
axiom DataBlobStorage : Type;
axiom EqDataBlobStoragea : Eq DataBlobStorage;
instance
EqDataBlobStorage : Eq DataBlobStorage := EqDataBlobStoragea;
axiom OrdDataBlobStoragea : Ord DataBlobStorage;
instance
OrdDataBlobStorage : Ord DataBlobStorage := OrdDataBlobStoragea;
type State :=
mkState@{
nullifierSet : Set Nullifier;
dataBlobStorage : DataBlobStorage;
};
Arguments
commitmentAccumulator
- a commitment accumulator that maps timestamps (part of CMtree) onto finite
field elements
secondCommitmentAccumulator
- a second commitment accumulator that maps finite field x timestamp pairs
onto finite field elements
nullifierSet
- a nullifier set that is a map from a finite field element to a finite
field element
hierarchicalIndex
- a hierarchical index that is a chained hash set that maps tree paths to
finite field elements
dataBlobStorage
- a data blob storage that is a key-value store mapping finite field
elements to (variable length byte array, deletion criterion) pairs
deletionCriteria
- a deletion criterion.
Auxiliary Juvix code
deriving instance
stateEq : Eq State;
deriving instance
stateOrd : Ord State;