corda / net.corda.flows / ContractUpgradeFlow / Instigator

# Instigator

`class Instigator<OldState : ContractState, out NewState : ContractState> : Instigator<OldState, NewState, Class<out UpgradedContract<OldState, NewState>>>`

### Constructors

<init> | `Instigator(originalState: StateAndRef<OldState>, newContractClass: Class<out UpgradedContract<OldState, NewState>>)`

### Inherited Properties

modification | `val modification: M`
originalState | `val originalState: StateAndRef<S>`
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 flow is invoked as a subflow of another, then the tracker will be made a child of the current step in the parent. If it's null, this flow doesn't track progress.

### Functions

assembleTx | `fun assembleTx(): Pair<SignedTransaction, Iterable<CompositeKey>>`

### Inherited Functions

call | `open fun call(): StateAndRef<T>` This is where you fill out your business logic. The returned object will usually be ignored, but can be helpful if this flow is meant to be used as a subflow.