net.corda.core.node

## Class ServiceHub.DefaultImpls

- net.corda.core.node.ServiceHub.DefaultImpls

- Enclosing interface:
    ServiceHub

      public static class ServiceHub.DefaultImpls

  A service hub simply vends references to the other services a node has. Some of those services may be missing or mocked out. This class is useful to pass to chunks of pluggable code that might have need of many different kinds of functionality and you don't want to hard-code which types in the interface.

  Any services exposed to flows (public view) need to implement SerializeAsToken or similar to avoid their internal state from being serialized in checkpoints.

  See Also:
    SerializeAsToken

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.security.KeyPair` | `getLegalIdentityKey(ServiceHub $this)` Helper property to shorten code for fetching the Node's KeyPair associated with the public legalIdentity Party from the key management service. Typical use is during signing in flows and for unit test signing.
    `static java.security.KeyPair` | `getNotaryIdentityKey(ServiceHub $this)` Helper property to shorten code for fetching the Node's KeyPair associated with the public notaryIdentity Party from the key management service. It is assumed that this is only used in contexts where the Node knows it is hosting a Notary Service. Otherwise, it will throw an IllegalArgumentException. Typical use is during signing in flows and for unit test signing.
    `static TransactionState<?>` | `loadState(ServiceHub $this, StateRef stateRef)` Given a `class StateRef` loads the referenced transaction and looks up the specified output `interface ContractState`.
    `static void` | `recordTransactions(ServiceHub $this, net.corda.core.transactions.SignedTransaction txs)` Given some `class SignedTransaction`s, writes them to the local storage for validated transactions and then sends them to the vault for further processing.
    `static <T extends ContractState> StateAndRef<T>` | `toStateAndRef(ServiceHub $this, StateRef ref)` Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

- - ### Method Detail

    - #### recordTransactions

          public static void recordTransactions(ServiceHub $this,
                                                net.corda.core.transactions.SignedTransaction txs)

      Given some `class SignedTransaction`s, writes them to the local storage for validated transactions and then sends them to the vault for further processing.

      Parameters:
        `txs` - The transactions to record.
      See Also:
        `class SignedTransaction`

    - #### loadState

          public static TransactionState<?> loadState(ServiceHub $this,
                                                      StateRef stateRef)

      Given a `class StateRef` loads the referenced transaction and looks up the specified output `interface ContractState`.

      Throws:
        - if the `class StateRef` points to a non-existent transaction.
      See Also:
        `class StateRef`, `interface ContractState`

    - #### toStateAndRef

          public static <T extends ContractState> StateAndRef<T> toStateAndRef(ServiceHub $this,
                                                                               StateRef ref)

      Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.

      Throws:
        - or IllegalArgumentException if there are problems with the logicType or args.
      See Also:
        logicType, args

    - #### getLegalIdentityKey

          public static java.security.KeyPair getLegalIdentityKey(ServiceHub $this)

      Helper property to shorten code for fetching the Node's KeyPair associated with the public legalIdentity Party from the key management service. Typical use is during signing in flows and for unit test signing.

      TODO: legalIdentity can now be composed of multiple keys, should we return a list of keyPairs here? Right now the logic assumes the legal identity has a composite key with only one node

    - #### getNotaryIdentityKey

          public static java.security.KeyPair getNotaryIdentityKey(ServiceHub $this)

      Helper property to shorten code for fetching the Node's KeyPair associated with the public notaryIdentity Party from the key management service. It is assumed that this is only used in contexts where the Node knows it is hosting a Notary Service. Otherwise, it will throw an IllegalArgumentException. Typical use is during signing in flows and for unit test signing.