corda / net.corda.flows / TwoPartyDealFlow

# TwoPartyDealFlow

`object TwoPartyDealFlow`

Classes for manipulating a two party deal or agreement.

TODO: The subclasses should probably be broken out into individual flows rather than making this an ever expanding collection of subclasses.

TODO: Also, the term Deal is used here where we might prefer Agreement.

TODO: Consider whether we can merge this with TwoPartyTradeFlow

### Types

Acceptor | `class Acceptor : Secondary<AutoOffer>` One side of the flow for inserting a pre-agreed deal.
AutoOffer | `data class AutoOffer`
Handshake | `data class Handshake<out T>`
Instigator | `class Instigator : Primary` One side of the flow for inserting a pre-agreed deal.
MarkerForBogusRegulatorFlow | `interface MarkerForBogusRegulatorFlow` Primary at the end sends the signed tx to all the regulator parties. This a seperate workflow which needs a sepearate session with the regulator. This interface is used to do that in Primary.getCounterpartyMarker.
Primary | `abstract class Primary : FlowLogic<SignedTransaction>` Abstracted bilateral deal flow participant that initiates communication/handshake.
Secondary | `abstract class Secondary<U> : FlowLogic<SignedTransaction>` Abstracted bilateral deal flow participant that is recipient of initial communication.
SignaturesFromPrimary | `class SignaturesFromPrimary`

### Exceptions

DealMismatchException | `class DealMismatchException : Exception`
DealRefMismatchException | `class DealRefMismatchException : Exception`