mirror of
https://github.com/corda/corda.git
synced 2024-12-21 05:53:23 +00:00
Minor: take out the 'inline reified' functions from the ProtocolStateMachine class. The slightly nicer syntax it enables isn't worth the readability hit for readers who aren't familiar with what this Kotlin feature does in this case.
This commit is contained in:
parent
363b335896
commit
a729d5134e
@ -80,7 +80,7 @@ object TwoPartyTradeProtocol {
|
||||
// Make the first message we'll send to kick off the protocol.
|
||||
val hello = SellerTradeInfo(assetToSell, price, myKeyPair.public, sessionID)
|
||||
|
||||
val partialTX = sendAndReceive<SignedWireTransaction>(TRADE_TOPIC, otherSide, buyerSessionID, sessionID, hello)
|
||||
val partialTX = sendAndReceive(TRADE_TOPIC, otherSide, buyerSessionID, sessionID, hello, SignedWireTransaction::class.java)
|
||||
logger.trace { "Received partially signed transaction" }
|
||||
|
||||
partialTX.verifySignatures()
|
||||
@ -140,7 +140,7 @@ object TwoPartyTradeProtocol {
|
||||
@Suspendable
|
||||
override fun call(): Pair<WireTransaction, LedgerTransaction> {
|
||||
// Wait for a trade request to come in on our pre-provided session ID.
|
||||
val tradeRequest = receive<SellerTradeInfo>(TRADE_TOPIC, sessionID)
|
||||
val tradeRequest = receive(TRADE_TOPIC, sessionID, SellerTradeInfo::class.java)
|
||||
|
||||
// What is the seller trying to sell us?
|
||||
val assetTypeName = tradeRequest.assetForSale.state.javaClass.name
|
||||
@ -191,8 +191,8 @@ object TwoPartyTradeProtocol {
|
||||
// TODO: Protect against the buyer terminating here and leaving us in the lurch without the final tx.
|
||||
// TODO: Protect against a malicious buyer sending us back a different transaction to the one we built.
|
||||
|
||||
val fullySigned = sendAndReceive<SignedWireTransaction>(TRADE_TOPIC, otherSide, tradeRequest.sessionID,
|
||||
sessionID, stx)
|
||||
val fullySigned = sendAndReceive(TRADE_TOPIC, otherSide, tradeRequest.sessionID,
|
||||
sessionID, stx, SignedWireTransaction::class.java)
|
||||
|
||||
logger.trace { "Got fully signed transaction, verifying ... "}
|
||||
|
||||
|
@ -296,15 +296,6 @@ abstract class ProtocolStateMachine<R> : Fiber<R>("protocol", SameThreadFiberSch
|
||||
val result = FiberRequest.NotExpectingResponse(topic, destination, sessionID, obj)
|
||||
Fiber.parkAndSerialize { fiber, writer -> suspendFunc!!(result, writer.write(fiber)) }
|
||||
}
|
||||
|
||||
// Convenience functions for Kotlin users.
|
||||
inline fun <reified R : Any> sendAndReceive(topic: String, destination: MessageRecipients, sessionIDForSend: Long,
|
||||
sessionIDForReceive: Long, obj: Any): R {
|
||||
return sendAndReceive(topic, destination, sessionIDForSend, sessionIDForReceive, obj, R::class.java)
|
||||
}
|
||||
inline fun <reified R : Any> receive(topic: String, sessionIDForReceive: Long): R {
|
||||
return receive(topic, sessionIDForReceive, R::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Clean this up
|
||||
|
@ -115,8 +115,8 @@ class TimestamperClient(private val psm: ProtocolStateMachine<*>, private val no
|
||||
val sessionID = random63BitValue()
|
||||
val replyTopic = "${TimestamperNodeService.TIMESTAMPING_PROTOCOL_TOPIC}.$sessionID"
|
||||
val req = TimestampingMessages.Request(wtxBytes, psm.serviceHub.networkService.myAddress, replyTopic)
|
||||
val signature = psm.sendAndReceive<DigitalSignature.LegallyIdentifiable>(
|
||||
TimestamperNodeService.TIMESTAMPING_PROTOCOL_TOPIC, node.address, 0, sessionID, req)
|
||||
val signature = psm.sendAndReceive(TimestamperNodeService.TIMESTAMPING_PROTOCOL_TOPIC, node.address, 0,
|
||||
sessionID, req, DigitalSignature.LegallyIdentifiable::class.java)
|
||||
// Check that the timestamping authority gave us back a valid signature and didn't break somehow
|
||||
signature.verifyWithECDSA(wtxBytes)
|
||||
return signature
|
||||
|
Loading…
Reference in New Issue
Block a user