ReservationPressure class
The ephemeral reservation-PRESSURE gauge — a LOWER-BOUND count of how close the wallet is to the
engine's one-time-address (ZIP-320 ephemeral) gap-limit ceiling, beyond which a TEX send cannot
mint a fresh one-time address and PARKS. ⚠ outstanding is a LOWER BOUND, NOT a faithful "N of M"
(#315): the underlying engine read is BLIND to slots held by sends that were CREATED then never
confirmed (the common stuck shape — their output row exists from create-persist, so the read drops
them), so it can read 0 while the window is actually full. So NEVER drive an availability state
from it as if it were exact — surface it as a proactive "at least N of M in use" hint, and let the
engine's TexSendLimitReached at send time be the real gate. (The engine CEILING itself IS
dual-natured — some slots clear as transfers confirm, some never do — which is why the ceiling
COPY, distinct from this gauge, promises neither "just wait" nor doom.) COUNTS-only. An INDICATOR
for display, NEVER a money gate (the engine enforces the ceiling at reservation time); 0
outstanding in the common case (no TEX send has reserved an address).
INDICATOR, NOT A GATE (host contract — like RecoverableEphemeralFunds's isFinal). Drive any
availability STATE off atCeiling, never off the raw ratio. Do NOT use atCeiling to DISABLE the
send path — limit is a mirror of the engine default, so a stale-low mirror can flip atCeiling
EARLY and a hard-disabled button would block a send the engine would actually accept. Let the user
attempt; the engine's TexSendLimitReached is the real gate, and a send that does park is recoverable
(it appears in WalletHandle.listParkedSends). When rendering "N of M", CLAMP N to M for display —
if a future engine raises its real gap above the mirror, outstanding can exceed limit and a
verbatim "12 of 10" is incoherent (atCeiling stays correct via the welded >=).
Constructors
- ReservationPressure({required int outstanding, required int limit, required bool atCeiling})
-
const
Properties
- atCeiling → bool
-
trueiffoutstanding >= limit— the next TEX send would park at the ceiling. Render the dual-natured ceiling WARNING (see the type doc — never a bare "temporarily unavailable", and never disable the send path). Welded in so the host can never render a money-relevant availability state by skipping the comparison.final - hashCode → PlatformInt64
-
The hash code for this object.
no setteroverride
- limit → PlatformInt64
-
The engine gap-limit denominator (the "N of M" M). An observability figure, not the enforcing bound.
final
- outstanding → PlatformInt64
-
Outstanding one-time-address reservations — a LOWER BOUND (#315): the underlying engine read
cannot see slots held by sends that were created and then never confirmed (the common stuck
shape), so this can read
0while the window is actually full. Treat it as "at least N in use", never as proof the window is clear; the real gate stays the typed WalletErrorKind.texSendLimitReached at send time. MAY exceedlimitif the engine default ever rises above the mirror — clamp tolimitfor an "N of M" display.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override