From a86c5ba2dd3f4b39628444442a339b86150d4247 Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Wed, 7 Jun 2017 17:49:56 +0100 Subject: [PATCH] Deanonymise names in SIMM demo --- .../main/kotlin/net/corda/vega/api/PortfolioApi.kt | 2 +- .../kotlin/net/corda/vega/api/PortfolioApiUtils.kt | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApi.kt b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApi.kt index c8678a0952..3de298dbd9 100644 --- a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApi.kt +++ b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApi.kt @@ -154,7 +154,7 @@ class PortfolioApi(val rpc: CordaRPCOps) { return withParty(partyName) { val states = dealsWith(it) val tradeState = states.first { it.state.data.swap.id.second == tradeId }.state.data - Response.ok().entity(portfolioUtils.createTradeView(tradeState)).build() + Response.ok().entity(portfolioUtils.createTradeView(rpc, tradeState)).build() } } diff --git a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApiUtils.kt b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApiUtils.kt index 82498b71ea..cda90b40d4 100644 --- a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApiUtils.kt +++ b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/api/PortfolioApiUtils.kt @@ -5,9 +5,12 @@ import com.opengamma.strata.product.swap.IborRateCalculation import com.opengamma.strata.product.swap.RateCalculationSwapLeg import com.opengamma.strata.product.swap.SwapLegType import net.corda.core.contracts.hash +import net.corda.core.crypto.commonName import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party import net.corda.core.crypto.toBase58String +import net.corda.core.messaging.CordaRPCOps +import net.corda.core.node.ServiceHub import net.corda.vega.contracts.IRSState import net.corda.vega.contracts.PortfolioState import net.corda.vega.portfolio.Portfolio @@ -123,16 +126,18 @@ class PortfolioApiUtils(private val ownParty: Party) { val common: Map, val ref: String) - fun createTradeView(state: IRSState): TradeView { + fun createTradeView(rpc: CordaRPCOps, state: IRSState): TradeView { val trade = if (state.buyer == ownParty as AbstractParty) state.swap.toFloatingLeg() else state.swap.toFloatingLeg() val fixedLeg = trade.product.legs.first { it.type == SwapLegType.FIXED } as RateCalculationSwapLeg val floatingLeg = trade.product.legs.first { it.type != SwapLegType.FIXED } as RateCalculationSwapLeg val fixedRate = fixedLeg.calculation as FixedRateCalculation val floatingRate = floatingLeg.calculation as IborRateCalculation + val fixedRatePayer: AbstractParty = rpc.partyFromKey(state.buyer.owningKey) ?: state.buyer + val floatingRatePayer: AbstractParty = rpc.partyFromKey(state.seller.owningKey) ?: state.seller return TradeView( fixedLeg = mapOf( - "fixedRatePayer" to state.buyer.owningKey.toBase58String(), + "fixedRatePayer" to (fixedRatePayer.nameOrNull()?.commonName ?: fixedRatePayer.owningKey.toBase58String()), "notional" to mapOf( "token" to fixedLeg.currency.code, "quantity" to fixedLeg.notionalSchedule.amount.initialValue @@ -148,7 +153,7 @@ class PortfolioApiUtils(private val ownParty: Party) { "paymentCalendar" to mapOf() // TODO ), floatingLeg = mapOf( - "floatingRatePayer" to state.seller.owningKey.toBase58String(), + "floatingRatePayer" to (floatingRatePayer.nameOrNull()?.commonName ?: floatingRatePayer.owningKey.toBase58String()), "notional" to mapOf( "token" to floatingLeg.currency.code, "quantity" to floatingLeg.notionalSchedule.amount.initialValue