com.r3corda.protocols / TwoPartyDealProtocol / Instigator

# Instigator

`class Instigator<out T : DealState> : Primary<T>`

One side of the protocol for inserting a pre-agreed deal.

### Constructors

<init> | `Instigator(otherSide: Party, notary: Party, payload: T, myKeyPair: KeyPair, otherSessionID: Long, progressTracker: ProgressTracker = Primary.tracker())` One side of the protocol for inserting a pre-agreed deal.

### Properties

myKeyPair | `open val myKeyPair: KeyPair`
notary | `val notary: Party`
notaryNode | `open val notaryNode: NodeInfo`
otherSessionID | `open val otherSessionID: Long`
otherSide | `open val otherSide: Party`
payload | `open val payload: T`
progressTracker | `open val progressTracker: ProgressTracker` Override this to provide a ProgressTracker. If one is provided and stepped, the framework will do something helpful with the progress reports. If this protocol is invoked as a sub-protocol of another, then the tracker will be made a child of the current step in the parent. If its null, this protocol doesnt track progress.

### Inherited Properties

topic | `open val topic: String` The topic to use when communicating with other parties. If more than one topic is required then use sub-protocols. Note that this is temporary until protocol sessions are properly implemented.

### Inherited Functions

call | `open fun call(): SignedTransaction` This is where you fill out your business logic.
getPartialTransaction | `fun getPartialTransaction(): UntrustworthyData<SignedTransaction>`
signWithOurKey | `open fun signWithOurKey(partialTX: SignedTransaction): WithKey`
verifyPartialTransaction | `fun verifyPartialTransaction(untrustedPartialTX: UntrustworthyData<SignedTransaction>): SignedTransaction`