Class X402::BSV::PrefixStore::Memory ¶
Inherits: Object
In-memory backend suitable for development and single-process deployments. Thread-safe via Monitor. Entries expire after ttl seconds and the store rejects new prefixes once max_issued unconsumed entries are held.
NOTE: This store provides no replay protection across OS processes (e.g. Puma pre-fork, multiple dynos). Production multi-process deployments should use a shared backend (Redis, database).
Constants¶
DEFAULT_MAX_ISSUED ¶
Not documented.
DEFAULT_TTL ¶
Not documented.
Public Instance Methods¶
consume!(prefix) ¶
Atomically mark a prefix as consumed. Returns false if already consumed, unknown, or expired. - @param prefix [String] hex derivation prefix - @return [Boolean] true if successfully consumed, false if replay/unknown/expired
initialize(ttl: = DEFAULT_TTL, max_issued: = DEFAULT_MAX_ISSUED) ¶
- @param
ttl[Integer] seconds before an issued prefix expires (default 300) - @param
max_issued[Integer] cap on unconsumed prefixes (default 10_000) - @return [Memory] a new instance of Memory
store!(prefix) ¶
Record a prefix as issued. - @param prefix [String] hex derivation prefix - @raise [StoreFullError] if max_issued unconsumed prefixes are held - @return [void]
valid?(prefix) ¶
Non-binding read: returns true if the prefix was issued and not yet consumed. - @param prefix [String] hex derivation prefix - @return [Boolean]