JAR: JAM Axiomatic Reference

10.1. Data Types🔗

🔗structure
Jar.Accumulation.OperandTuple : Type
Jar.Accumulation.OperandTuple : Type

Combined work-digest/report operand for accumulation. GP §12.

Constructor

Jar.Accumulation.OperandTuple.mk

Fields

packageHash : Hash
segmentRoot : Hash
authorizerHash : Hash
payloadHash : Hash
gasLimit : Jar.Gas
authOutput : ByteArray
result : Jar.WorkResult
🔗structure
Jar.Accumulation.PartialState : Type
Jar.Accumulation.PartialState : Type

Partial state threaded through accumulation. GP §12.

Constructor

Jar.Accumulation.PartialState.mk

Fields

accounts : Dict Jar.ServiceId Jar.ServiceAccount
stagingKeys : Array Jar.ValidatorKey
authQueue : Array (Array Hash)
manager : Jar.ServiceId
assigners : Array Jar.ServiceId
designator : Jar.ServiceId
registrar : Jar.ServiceId
alwaysAccumulate : Dict Jar.ServiceId Jar.Gas
🔗structure
Jar.Accumulation.AccOneOutput : Type
Jar.Accumulation.AccOneOutput : Type

Output of a single-service accumulation. GP §12.

Constructor

Jar.Accumulation.AccOneOutput.mk

Fields

postState : PartialState
deferredTransfers : Array Jar.DeferredTransfer
yieldHash : Option Hash
gasUsed : Jar.Gas
provisions : Array (Jar.ServiceId × ByteArray)
opaqueData : Array (ByteArray × ByteArray)

Updated opaque data (entries consumed during accumulation removed).

exitReasonStr : String

Debug: exit reason string for tracing.

hostCallLog : Array String

Debug: host call log entries.

🔗structure
Jar.Accumulation.AccContext : Type
Jar.Accumulation.AccContext : Type

Mutable context during a single accumulation invocation.

Constructor

Jar.Accumulation.AccContext.mk

Fields

serviceId : Jar.ServiceId

Service ID being accumulated.

state : PartialState

Current partial state.

transfers : Array Jar.DeferredTransfer

Deferred transfers generated so far.

yieldHash : Option Hash

Yield value (accumulation output).

provisions : Array (Jar.ServiceId × ByteArray)

Preimage provisions.

gasUsed : Jar.Gas

Gas used so far.

operands : Array OperandTuple

Operand tuples for this service.

timeslot : Jar.Timeslot

Current timeslot.

nextServiceId : Jar.ServiceId

Next service ID for new service creation.

checkpoint : Option
  (PartialState ×
    Array (ByteArray × ByteArray) × Option Hash × Array Jar.DeferredTransfer × Array (Jar.ServiceId × ByteArray))

Checkpoint state: full context (for OOG/panic revert). Saves (partialState, opaqueData, yieldHash, transfers, provisions).

entropy : Hash

Entropy η'₀ for fetch mode 1.

configBlob : ByteArray

Protocol configuration blob for fetch mode 0.

itemsBlob : ByteArray

Encoded items blob for fetch mode 14.

items : Array ByteArray

Individual encoded items for fetch mode 15.

opaqueData : Array (ByteArray × ByteArray)

Opaque data for fallback lookups (storage/preimage from initial keyvals).

initAccounts : Dict Jar.ServiceId Jar.ServiceAccount

Initial accounts snapshot for parallel semantics: host calls that read OTHER services' state use this instead of ctx.state.accounts.

exports : Array ByteArray

Segment export data (for export host call).

hostCallLog : Array String

Debug: host call log.

debugExtra : String

Debug: extra info for current host call (reset each call).