state
Responsibility
Boot an ownerless registry and admit only registration and permanent termination. Rejects retain their original exit.
Dependencies
registry/genesis validates creation; registry/admission and registry/modify
validate the two supported operations and their settlement obligations.
Assumptions
The state input carries its datum and exactly one state token under this script. Legacy redeemer and datum encodings remain available for refusal controls.
Invariants
Admission is fixed for the lifetime of an instance. No parameter or redeemer can widen it; custody, migration and registry destruction have no spending path.
Functions
modifyRefusal(
pins: State,
actions: List<RequestAction>,
input: Input,
tx: Transaction,
) -> Option<String>
Why the cage refuses this Modify of the state input carrying
pins, or None when it folds. The spend handler traces exactly this
reason and returns False, so a test asserting it asserts the one trace
the whole transaction emits — not merely that it was refused.