JAR: JAM Axiomatic Reference

10.5. Block-Level Accumulation🔗

🔗structure
Jar.Accumulation.AccumulationResult : Type
Jar.Accumulation.AccumulationResult : Type

Result of block-level accumulation.

Constructor

Jar.Accumulation.AccumulationResult.mk

Fields

services : Dict Jar.ServiceId Jar.ServiceAccount

Updated service accounts.

privileged : Jar.PrivilegedServices

Updated privileged services.

authQueue : Array (Array Hash)

Updated authorization queue.

stagingKeys : Array Jar.ValidatorKey

Updated staging validator keys.

outputs : Array (Jar.ServiceId × Hash)

Accumulation output pairs (service → hash).

gasUsage : Dict Jar.ServiceId Jar.Gas

Per-service gas usage.

remainingOpaqueData : Array (ByteArray × ByteArray)

Remaining opaque data after accumulation (consumed entries removed).

exitReasons : Array (Jar.ServiceId × String)

Debug: per-service exit reason strings.

🔗def
Jar.Accumulation.accumulate [Jar.JamConfig] (state : Jar.State) (reports : Array Jar.WorkReport) (timeslot : Jar.Timeslot) (opaqueData : Array (ByteArray × ByteArray)) : AccumulationResult
Jar.Accumulation.accumulate [Jar.JamConfig] (state : Jar.State) (reports : Array Jar.WorkReport) (timeslot : Jar.Timeslot) (opaqueData : Array (ByteArray × ByteArray)) : AccumulationResult

Perform block-level accumulation. GP §12. Takes available work-reports that have been assured and runs the full accseq pipeline.