class NodeVaultService : SingletonSerializeAsToken, VaultService
Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when we add further functionality as the design for the vault and vault service matures.
This class needs database transactions to be in-flight during method calls and init, and will throw exceptions if this is not the case.
TODO: move query / filter criteria into the database query. TODO: keep an audit trail with time stamps of previously unconsumed states "as of" a particular point in time. TODO: have transaction storage do some caching.
<init> |
NodeVaultService(services: ServiceHub) Currently, the node vault service is a very simple RDBMS backed implementation. It will change significantly when we add further functionality as the design for the vault and vault service matures. |
currentVault |
val currentVault: Vault Returns a read-only snapshot of the vault at the time the call is made. Note that if you consume states or keys in this vault, you must inform the vault service so it can update its internal state. |
linearHeads |
val linearHeads: Map<UniqueIdentifier, StateAndRef<LinearState>> Returns a snapshot of the heads of LinearStates. |
mutex |
val mutex: ReentrantLock |
updates |
val updates: <ERROR CLASS><Update> Get a synchronous Observable of updates. When observations are pushed to the Observer, the vault will already incorporate the update. |
notifyAll |
fun notifyAll(txns: Iterable<WireTransaction>): Vault Possibly update the vault by marking as spent states that these transactions consume, and adding any relevant new states that they create. You should only insert transactions that have been successfully verified here |
linearHeadsOfType_ |
open fun <T : LinearState> linearHeadsOfType_(stateType: Class<T>): Map<UniqueIdentifier, StateAndRef<T>> Returns the linearHeads only when the type of the state would be considered an instanceof the given type. |
notify |
open fun notify(tx: WireTransaction): Vault Same as notifyAll but with a single transaction. |
statesForRefs |
open fun statesForRefs(refs: List<StateRef>): Map<StateRef, TransactionState<*>?> |
toToken |
open fun toToken(context: SerializeAsTokenContext): SerializationToken |
whenConsumed |
open fun whenConsumed(ref: StateRef): <ERROR CLASS><Update> Provide a Future for when a StateRef is consumed, which can be very useful in building tests. |
log |
val log: <ERROR CLASS> |
linearHeadsOfType |
fun <T : LinearState> VaultService.linearHeadsOfType(): <ERROR CLASS> |