Override party keys from example-irs-trade.json file, so demos run correctly. Add api call to query for

Bank A and Bank B keys. Change port numbers, which are hardcoded in 2 places and were different when run through IntelliJ and through CLI.
This commit is contained in:
Katarzyna Streich 2017-03-06 18:26:19 +00:00 committed by kasiastreich
parent f2b3adab4f
commit 4d10682f62
5 changed files with 19 additions and 8 deletions

View File

@ -104,7 +104,7 @@ To run from IntelliJ:
The date change rolls the clock forwards and causes the nodes to agree on the fixings over a period.
This demo also has a web app. To use this, run nodes and upload rates, then navigate to
http://localhost:10005/web/irsdemo and http://localhost:10007/web/irsdemo to see each node's view of the ledger.
http://localhost:10007/web/irsdemo and http://localhost:10010/web/irsdemo to see each node's view of the ledger.
To use the web app, click the "Create Deal" button, fill in the form, then click the "Submit" button. You can then
use the time controls at the top left of the home page to run the fixings. Click any individual trade in the blotter to view it.

View File

@ -71,7 +71,7 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['build']) {
nearestCity "London"
advertisedServices = ["corda.notary.validating", "corda.interest_rates"]
artemisPort 10002
webPort 10003
webPort 10004
cordapps = []
useTestClock true
}
@ -79,8 +79,8 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['build']) {
name "Bank A"
nearestCity "London"
advertisedServices = []
artemisPort 10004
webPort 10005
artemisPort 10005
webPort 10007
cordapps = []
useTestClock true
}
@ -89,7 +89,7 @@ task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['build']) {
nearestCity "New York"
advertisedServices = []
artemisPort 10006
webPort 10007
webPort 10010
cordapps = []
useTestClock true
}

View File

@ -30,8 +30,8 @@ fun main(args: Array<String>) {
val role = options.valueOf(roleArg)!!
val value = options.valueOf(valueArg)
when (role) {
Role.UploadRates -> IRSDemoClientApi(HostAndPort.fromString("localhost:10003")).runUploadRates()
Role.Trade -> IRSDemoClientApi(HostAndPort.fromString("localhost:10005")).runTrade(value)
Role.UploadRates -> IRSDemoClientApi(HostAndPort.fromString("localhost:10004")).runUploadRates()
Role.Trade -> IRSDemoClientApi(HostAndPort.fromString("localhost:10007")).runTrade(value)
Role.Date -> IRSDemoClientApi(HostAndPort.fromString("localhost:10007")).runDateChange(value)
}
}

View File

@ -63,6 +63,16 @@ class InterestRateSwapAPI(val rpc: CordaRPCOps) {
@Produces(MediaType.APPLICATION_JSON)
fun fetchDeals(): Array<InterestRateSwap.State> = getAllDeals()
// Function needed to substitute party keys in JSON file example-irs-trade.json
@GET
@Path("partykeys")
@Produces(MediaType.APPLICATION_JSON)
fun partyFromName(): Response {
val keyA = rpc.partyFromName("Bank A")?.owningKey
val keyB = rpc.partyFromName("Bank B")?.owningKey
return Response.ok().entity(Pair(keyA, keyB)).build()
}
@POST
@Path("deals")
@Consumes(MediaType.APPLICATION_JSON)

View File

@ -14,7 +14,8 @@ class IRSDemoClientApi(private val hostAndPort: HostAndPort) {
fun runTrade(tradeId: String): Boolean {
val fileContents = IOUtils.toString(javaClass.classLoader.getResourceAsStream("example-irs-trade.json"))
val tradeFile = fileContents.replace("tradeXXX", tradeId)
val (keyA, keyB) = api.getJson<Pair<String, String>>("partykeys")
val tradeFile = fileContents.replace("tradeXXX", tradeId).replace("fixedRatePayerKey", keyA).replace("floatingRatePayerKey", keyB)
return api.postJson("deals", tradeFile)
}