protocols / TwoPartyDealProtocol / Instigator

# Instigator

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

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

### Constructors

<init> | `Instigator(otherSide: SingleMessageRecipient, timestampingAuthority: NodeInfo, dealBeingOffered: T, myKeyPair: KeyPair, buyerSessionID: Long, progressTracker: ProgressTracker = Primary.tracker())` One side of the protocol for inserting a pre-agreed deal.

### Properties

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

myKeyPair | `val myKeyPair: KeyPair`
otherSessionID | `val otherSessionID: Long`
otherSide | `val otherSide: SingleMessageRecipient`
payload | `val payload: U`
timestampingAuthority | `val timestampingAuthority: NodeInfo`

### 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`