The resolution.
The seed.
A copy of the chain id.
The sequence number the next mark gets.
The RNG state the next key is drawn from.
StaticfromA fresh chain from a seed: the chain id is sha256(seed) cut to the link length.
StaticfromA fresh chain from ProvenanceSeed.fromPassphrase.
StaticrandomA fresh chain from a random seed.
StaticfromA generator restored mid-chain. The chain id must have the link
length (InvalidChainIdLength), the next sequence number must be a
u32 (ResolutionError).
The next mark: the genesis mark's key is the chain id, every later
key is drawn from the RNG (which advances); the next key is drawn
from a copy so the hash commits to it. The date is a Date or a
CborDate; one the resolution cannot encode (YearOutOfRange,
DateOutOfRange, InvalidDate) throws before any state changes.
info is any CBOR the mark carries: a Cbor, a ToCbor, or a value
dcbor encodes.
Optionalinfo: CborInputSame resolution, seed, chain id, next sequence number and RNG state; a TypeError for a non-generator.
ProvenanceMarkGenerator(chainID: <hex>, res: <name>, seed: <hex>, nextSeq: <n>, rngState: <hex>).
res (wire number), seed, chainID, nextSeq, rngState, bytes in base64.
StaticfromThe JSON shape, read strictly: every field required, res a wire
number, nextSeq a u32, seed and rngState 32 bytes of base64,
chainID base64 of the link length. Any fault is Json, worded as
serde words it.
The chain id as the subject, typed provenance-generator, with res,
seed, next-seq and rng-state assertions.
StaticfromA generator from its envelope. An envelope not typed
provenance-generator, or missing a field, is Envelope; more or
fewer than five assertions is ExtraKeys; a field of the wrong
shape is Cbor.
Produces a chain of marks from a seed: the chain id and the RNG state derive from the seed, each
nextdraws the next key and advances the state. Persist it between marks withtoJSONortoEnvelope.