pub struct RepoState {
pub owner: PublicKey,
pub name: Option<SignedField<String>>,
pub description: Option<SignedField<String>>,
pub default_branch: Option<SignedField<RefName>>,
pub force_push_allowed: Option<SignedField<Vec<RefName>>>,
pub acl: Option<SignedField<AclState>>,
pub upgrade: Option<SignedField<Option<RepoKey>>>,
pub refs: BTreeMap<RefName, RefEntry>,
pub object_index: BTreeMap<ObjectBundleId, ObjectBundleRecord>,
pub extensions: BTreeMap<String, ExtensionEntry>,
}Expand description
The full mutable state of a repo contract.
Fields§
§owner: PublicKeyThe owner’s ed25519 public key. validate_state enforces that
base58(owner)[..params.prefix.len()] == params.prefix. The
owner is implicitly authenticated through every signed field —
changing it would invalidate all signatures, since the signature
domain key derives from prefix + owner.
name: Option<SignedField<String>>Display name of the repo.
description: Option<SignedField<String>>Free-form description.
default_branch: Option<SignedField<RefName>>Default branch (refs/heads/<x>). When set, clones default to it.
force_push_allowed: Option<SignedField<Vec<RefName>>>Refs in this set are allowed to be force-pushed (non-fast-forward). Phase 1.0 always treats this as empty.
acl: Option<SignedField<AclState>>ACL grant log. Phase 1.0 keeps this at default (epoch 0, empty).
upgrade: Option<SignedField<Option<RepoKey>>>Append-only successor pointer for breaking schema migrations.
refs: BTreeMap<RefName, RefEntry>Refs by name.
object_index: BTreeMap<ObjectBundleId, ObjectBundleRecord>Stored object bundles, keyed by their id().
extensions: BTreeMap<String, ExtensionEntry>Owner-signed extensions for forward compatibility.