Use notary identity in Bank of Corda demo

Resolve notary identity via node identity in Bank of Corda demo.
This commit is contained in:
Ross Nicoll 2017-07-19 18:23:33 +01:00
parent 29ff4a7ef6
commit b6902aada6

View File

@ -43,11 +43,13 @@ class BankOfCordaWebApi(val rpc: CordaRPCOps) {
fun issueAssetRequest(params: IssueRequestParams): Response { fun issueAssetRequest(params: IssueRequestParams): Response {
// Resolve parties via RPC // Resolve parties via RPC
val issueToParty = rpc.partyFromX500Name(params.issueToPartyName) val issueToParty = rpc.partyFromX500Name(params.issueToPartyName)
?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.issueToPartyName} in Network Map Service").build() ?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.issueToPartyName} in identity service").build()
val issuerBankParty = rpc.partyFromX500Name(params.issuerBankName) val issuerBankParty = rpc.partyFromX500Name(params.issuerBankName)
?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.issuerBankName} in Network Map Service").build() ?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.issuerBankName} in identity service").build()
val notaryParty = rpc.partyFromX500Name(params.notaryName) val notaryParty = rpc.partyFromX500Name(params.notaryName)
?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.notaryName} in Network Map Service").build() ?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${params.notaryName} in identity service").build()
val notaryNode = rpc.nodeIdentityFromParty(notaryParty)
?: return Response.status(Response.Status.FORBIDDEN).entity("Unable to locate ${notaryParty} in network map service").build()
val amount = Amount(params.amount, currency(params.currency)) val amount = Amount(params.amount, currency(params.currency))
val issuerToPartyRef = OpaqueBytes.of(params.issueToPartyRefAsString.toByte()) val issuerToPartyRef = OpaqueBytes.of(params.issueToPartyRefAsString.toByte())
@ -56,7 +58,7 @@ class BankOfCordaWebApi(val rpc: CordaRPCOps) {
// invoke client side of Issuer Flow: IssuanceRequester // invoke client side of Issuer Flow: IssuanceRequester
// The line below blocks and waits for the future to resolve. // The line below blocks and waits for the future to resolve.
return try { return try {
rpc.startFlow(::IssuanceRequester, amount, issueToParty, issuerToPartyRef, issuerBankParty, notaryParty, anonymous).returnValue.getOrThrow() rpc.startFlow(::IssuanceRequester, amount, issueToParty, issuerToPartyRef, issuerBankParty, notaryNode.notaryIdentity, anonymous).returnValue.getOrThrow()
logger.info("Issue request completed successfully: $params") logger.info("Issue request completed successfully: $params")
Response.status(Response.Status.CREATED).build() Response.status(Response.Status.CREATED).build()
} catch (e: Exception) { } catch (e: Exception) {