Protected ReadonlycacheProtected ReadonlydbStaticinstanceThe process default: built from each dependency's own instance().
Registers a vault bought from Utila. customerId: null is the generic
vault; a customer's own vault takes that customer's NEW wallets from here on.
A vault given a cosigner account then has a device registered on the host;
the vault exists whatever the outcome, which signingStatus records.
Soft-deletes a vault, so its customer's NEW wallets fall back to the internal or generic vault. Refused for the generic vault, and while any wallet row names it, deleted or disabled too: a deleted vault is no longer synced.
The vault customerId's custodial wallets are created in: its own live
vault, else the generic vault. Null when neither exists.
The vault CFX's own signing, minting and program operations run in: the internal vault, else the generic vault. Null when neither exists.
The vault customerId's sweep wallets are created in: its own live vault,
else CFX's internal vault, else the generic vault. Null when none exists.
Clear each customer's membership tag and each record tag wherever cached,
and always this namespace's collection tag. keys are exact deletes in this
instance's key space: the only bust a null client honours.
ProtectedinvalidateBust every page a write to vault could have changed: the collection tag
reaches every cached page, and the folded get key covers memory mode.
Takes a vault with a cosigner account one step on: registers its device when it has none, else checks the device's approval and health. The retry for every state short of SIGNING; the outcome is recorded either way.
ProtectedreadRead-through: the cached page for key, else read() stored under the collection tag.
Stored rows only; the getFor* reads apply the fallbacks.
ProtectedsearchTags for a page: the scope its query searched (each customer's membership
tag, else the collection tag), so an empty page is bustable too, plus the
records it projects and the fields that chose or ordered its rows.
Renames a live vault, changes its service accounts, or gives it to another
customer (null: nobody). Only NEW wallets follow: existing rows never move,
so a customer cannot be given a vault holding another customer's wallets.
StaticgetThe exact key UtilaVaultService.get reads through: the args it passes
plus search's defaults. JCS drops the undefined filters.
Writers delete it so read-after-write holds in memory mode.
Management of the Utila vaults: which customer each belongs to, the generic vault the rest share, and the service accounts that act in them. The table's only writer: every write busts the cache UtilaVaultService reads.