corda / net.corda.node.internal / CordaRPCOpsImpl

CordaRPCOpsImpl

class CordaRPCOpsImpl : CordaRPCOps

Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server thread (i.e. serially). Arguments are serialised and deserialised automatically.

Constructors

<init> CordaRPCOpsImpl(services: ServiceHub, smm: StateMachineManager, database: Database)

Server side implementations of RPCs available to MQ based client tools. Execution takes place on the server thread (i.e. serially). Arguments are serialised and deserialised automatically.

Properties

database val database: Database
protocolVersion val protocolVersion: Int

Returns the RPC protocol version. Exists since version 0 so guaranteed to be present.

services val services: ServiceHub
smm val smm: StateMachineManager

Functions

addVaultTransactionNote fun addVaultTransactionNote(txnId: SecureHash, txnNote: String): Unit
attachmentExists fun attachmentExists(id: SecureHash): Boolean

Checks whether an attachment with the given hash is stored on the node.

currentNodeTime fun currentNodeTime(): Instant

Returns the node-local current time.

getVaultTransactionNotes fun getVaultTransactionNotes(txnId: SecureHash): Iterable<String>
networkMapUpdates fun networkMapUpdates(): Pair<List<NodeInfo>, Observable<MapChange>>

Returns all parties currently visible on the network with their advertised services and an observable of future updates to the network.

nodeIdentity fun nodeIdentity(): NodeInfo

Returns Node's identity, assuming this will not change while the node is running.

partyFromKey fun partyFromKey(key: CompositeKey): Party?

Returns the Party corresponding to the given key, if found.

partyFromName fun partyFromName(name: String): Party?

Returns the Party with the given name as it's Party.name

startFlowDynamic fun <T : Any> startFlowDynamic(logicType: Class<out FlowLogic<T>>, vararg args: Any?): FlowHandle<T>

Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow.

stateMachineRecordedTransactionMapping fun stateMachineRecordedTransactionMapping(): Pair<List<StateMachineTransactionMapping>, Observable<StateMachineTransactionMapping>>

Returns a snapshot list of existing state machine id - recorded transaction hash mappings, and a stream of future such mappings as well.

stateMachinesAndUpdates fun stateMachinesAndUpdates(): Pair<List<StateMachineInfo>, Observable<StateMachineUpdate>>

Returns a pair of currently in-progress state machine infos and an observable of future state machine adds/removes.

uploadAttachment fun uploadAttachment(jar: InputStream): SecureHash

Uploads a jar to the node, returns it's hash.

vaultAndUpdates fun vaultAndUpdates(): Pair<List<StateAndRef<ContractState>>, Observable<Update>>

Returns a pair of head states in the vault and an observable of future updates to the vault.

verifiedTransactions fun verifiedTransactions(): Pair<List<SignedTransaction>, Observable<SignedTransaction>>

Returns a pair of all recorded transactions and an observable of future recorded ones.

Extension Functions

startFlow fun <T : Any, R : FlowLogic<T>> CordaRPCOps.startFlow(flowConstructor: () -> R): FlowHandle<T>

These allow type safe invocations of flows from Kotlin, e.g.:

fun <T : Any, A, R : FlowLogic<T>> CordaRPCOps.startFlow(flowConstructor: (A) -> R, arg0: A): FlowHandle<T>
fun <T : Any, A, B, R : FlowLogic<T>> CordaRPCOps.startFlow(flowConstructor: (A, B) -> R, arg0: A, arg1: B): FlowHandle<T>
fun <T : Any, A, B, C, R : FlowLogic<T>> CordaRPCOps.startFlow(flowConstructor: (A, B, C) -> R, arg0: A, arg1: B, arg2: C): FlowHandle<T>
fun <T : Any, A, B, C, D, R : FlowLogic<T>> CordaRPCOps.startFlow(flowConstructor: (A, B, C, D) -> R, arg0: A, arg1: B, arg2: C, arg3: D): FlowHandle<T>