JAR: Join-Accumulate Refine

7.4. Service Accounts🔗

Service accounts hold code, storage, preimages, and economic state. The economic fields are parameterized by the variant's EconType.

🔗structure
Jar.ServiceAccount [JarConfig] : Type
Jar.ServiceAccount [JarConfig] : Type

𝔸 : Service account. GP eq (9.3). A = ⟨s, p, l, econ, c, g, m, i, r, a⟩

Contains code, storage, preimages, and gas configuration. The economic model (balance vs quota) is determined by the variant.

Constructor

Jar.ServiceAccount.mk

Fields

storage : Dict ByteArray ByteArray

s : Key-value storage. ⟨𝔹→𝔹⟩.

preimages : Dict Hash ByteArray

p : Preimage lookup. ⟨ℍ→𝔹⟩.

preimageInfo : Dict (Hash × BlobLength) (Array Timeslot)

l : Preimage request metadata. ⟨(ℍ, ℕ_L) → ⟦ℕ_T⟧_{:3}⟩.

econ : JarConfig.EconType

Economic model fields (balance+gratis for gp072, quotaItems+quotaBytes for jar1).

codeHash : Hash

c : Service code hash. ℍ.

minAccGas : Gas

g : Minimum accumulation gas. ℕ_G.

minOnTransferGas : Gas

m : Minimum on-transfer (memo) gas. ℕ_G.

itemCount : UInt32

a_i : Number of storage items. ℕ_I.

creationSlot : Timeslot

a_r : Creation timeslot. ℕ_T.

lastAccumulation : Timeslot

a_a : Most recent accumulation timeslot. ℕ_T.

parentServiceId : Nat

a_p : Parent service ID. ℕ_S.

totalFootprint : Nat

a_o : Total storage footprint in octets (computed). Preserved from serialized state.