Skip to content

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]