com.r3corda.node.services.api / ServiceHubInternal

# ServiceHubInternal

`abstract class ServiceHubInternal : ServiceHub`

### Constructors

<init> | `ServiceHubInternal()`

### Properties

monitoringService | `abstract val monitoringService: MonitoringService`
networkService | `abstract val networkService: MessagingServiceInternal`
protocolLogicRefFactory | `abstract val protocolLogicRefFactory: ProtocolLogicRefFactory`

### Inherited Properties

clock | `abstract val clock: Clock`
identityService | `abstract val identityService: IdentityService`
keyManagementService | `abstract val keyManagementService: KeyManagementService`
networkMapCache | `abstract val networkMapCache: NetworkMapCache`
schedulerService | `abstract val schedulerService: SchedulerService`
storageService | `abstract val storageService: StorageService`
walletService | `abstract val walletService: WalletService`

### Functions

invokeProtocolAsync | `open fun <T : Any> invokeProtocolAsync(logicType: Class<out ProtocolLogic<T>>, vararg args: Any?): <ERROR CLASS><T>` Will check logicType and args against a whitelist and if acceptable then construct and initiate the protocol.
startProtocol | `abstract fun <T> startProtocol(loggerName: String, logic: ProtocolLogic<T>): <ERROR CLASS><T>` TODO: borrowing this method from service manager work in another branch. Its required to avoid circular dependency between SMM and the scheduler. That particular problem should also be resolved by the service manager work itself, at which point this method would not be needed (by the scheduler).

### Inherited Functions

loadState | `open fun loadState(stateRef: StateRef): TransactionState<*>` Given a StateRef loads the referenced transaction and looks up the specified output ContractState.
recordTransactions | `abstract fun recordTransactions(txs: Iterable<SignedTransaction>): Unit` Given a list of SignedTransactions, writes them to the local storage for validated transactions and then sends them to the wallet for further processing. `open fun recordTransactions(vararg txs: SignedTransaction): <ERROR CLASS>` Given some SignedTransactions, writes them to the local storage for validated transactions and then sends them to the wallet for further processing.
verifyTransaction | `open fun verifyTransaction(ltx: LedgerTransaction): Unit` Given a LedgerTransaction, looks up all its dependencies in the local database, uses the identity service to map the SignedTransactions the DB gives back into LedgerTransactions, and then runs the smart contracts for the transaction. If no exception is thrown, the transaction is valid.

### Extension Functions

fillWithSomeTestCash | `fun ServiceHub.fillWithSomeTestCash(howMuch: Amount<Currency>, notary: Party = DUMMY_NOTARY, atLeastThisManyStates: Int = 3, atMostThisManyStates: Int = 10, rng: Random = Random(), ref: OpaqueBytes = OpaqueBytes(ByteArray(1, { 0 }))): Wallet` Creates a random set of between (by default) 3 and 10 cash states that add up to the given amount and adds them to the wallet. This is intended for unit tests.